在我的 winforms 应用程序中,我可以使用更改任务栏图标,this.Icon
但这也会更改标题栏中的应用程序图标。
这就是我当前编辑图标的方式:
public static Icon GetIcon(string text)
{
//Create bitmap, kind of canvas
Bitmap bitmap = new Bitmap(32, 32);
Icon icon = new Icon(@"<icon-location>");
System.Drawing.Font drawFont = new System.Drawing.Font("Calibri", 12, FontStyle.Bold);
System.Drawing.SolidBrush drawBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Orange);
System.Drawing.Graphics graphics = System.Drawing.Graphics.FromImage(bitmap);
graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixel;
graphics.DrawIcon(icon, 0, 0);
graphics.DrawString(text, drawFont, drawBrush, 20, 15);
Icon createdIcon = Icon.FromHandle(bitmap.GetHicon());
drawFont.Dispose();
drawBrush.Dispose();
graphics.Dispose();
bitmap.Dispose();
return createdIcon;
}
在需求改变之前这不是问题,现在只需要更改任务栏图标而不更改标题栏(左上角应用程序窗口)图标。
经过一番搜索,我遇到了这个答案,它基本上表明正在使用不同的分辨率在不同的地方显示图标。该答案中提到的“Greenfish Icon Editor Pro”效果很好,但我的编辑需要在运行时完成,因为它被用作通知方法来通知用户未读通知的数量,因此它不是一次性编辑。
我意识到我需要更改图标的 64x64 以实现我的目标,但到目前为止我所能做的就是一起更改图标。
无论如何我可以编辑GetIcon()函数来编辑特定的图标分辨率吗?(或者至少对替代方法的建议将不胜感激)