2013-06-01 107 views
1

我正在嘗試調整SystemIcon以便在ErrorProvider中使用。調整ErrorProvider的系統圖標

Dim WarnProvider As New ErrorProvider 
    WarnProvider.BlinkStyle = ErrorBlinkStyle.NeverBlink 
    WarnProvider.Icon = SystemIcons.Information.Clone() 
    WarnProvider.Icon.Size = New Size(16,16) 

但SystemIcons的大小設置爲只讀屬性。

在過去的一個小時裏,它已經搞亂了它,並沒有找到任何好的方法來完成這項工作。

有人可以幫忙嗎?

感謝

回答

2

我一直在尋找一種方法來做到這一點,並遇到這篇文章。以下是我最終解決問題的方法。

我創建了一個全局靜態方法來調整圖標的大小。

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()); 
    } 
} 

然後我在調用InitializeComponent()後在表單的構造函數中應用了圖標。

public SpecificationsDialog(int pid) 
{ 
    InitializeComponent(); 
    warningProvider1.Icon = Global.ResizeIcon(SystemIcons.Warning,SystemInformation.SmallIconSize); 
}