jli*_*ted 1 icons system.drawing errorprovider
我正在尝试调整 SystemIcon 的大小以在 ErrorProvider 中使用。
Dim WarnProvider As New ErrorProvider
WarnProvider.BlinkStyle = ErrorBlinkStyle.NeverBlink
WarnProvider.Icon = SystemIcons.Information.Clone()
WarnProvider.Icon.Size = New Size(16,16)
Run Code Online (Sandbox Code Playgroud)
但是 SystemIcons 的大小设置为只读属性。
过去一个小时一直在搞乱它,还没有找到任何好的方法来使这项工作发挥作用。
有人可以帮忙吗?
谢谢
我也在寻找一种方法来做到这一点,并遇到了这篇文章。这是我最终为解决该问题所做的工作。
我创建了一个全局静态方法来调整图标大小。
public static class Global
{
public static Icon ResizeIcon( Icon icon, Size size )
{
Bitmap bitmap = new Bitmap(size.Width,size.Height);
using( Graphics g = Graphics.FromImage(bitmap) )
{
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.DrawImage(icon.ToBitmap(), new Rectangle(Point.Empty,size));
}
return Icon.FromHandle(bitmap.GetHicon());
}
}
Run Code Online (Sandbox Code Playgroud)
然后我在InitializeComponent()调用后在表单的构造函数中应用了图标。
public SpecificationsDialog( int pid )
{
InitializeComponent();
warningProvider1.Icon = Global.ResizeIcon(SystemIcons.Warning,SystemInformation.SmallIconSize);
}
Run Code Online (Sandbox Code Playgroud)