[英]Create System Tray Icon from Webdings font
我正在嘗試創建一個非常簡單的系統托盤圖標,它只是一個帶有白色邊框的動態彩色圓圈。 為此,我們使用Webdings字體。 Webdings中的“n”只是一個簡單的圓圈。
我目前正在做的幾乎就在那里,但是在一些PC(但不是全部)上,它最終會在它周圍形成一個波濤洶涌的黑色邊框:
這是我得到的:
protected static Icon GetTrayIconFromCache(Color statusColor)
{
Bitmap bmp = new Bitmap(16,16);
Graphics circleGraphic = Graphics.FromImage(bmp);
circleGraphic.DrawString("n", new Font("Webdings", 12F, FontStyle.Regular), Brushes.White, -3f, -2f);
circleGraphic.DrawString("n", new Font("Webdings", 9F, FontStyle.Regular), new SolidBrush(statusColor), 0f, -1f);
Icon ico = Icon.FromHandle((bmp).GetHicon());
return ico;
}
無論我嘗試什么,我都無法擺脫圓圈外面那些丑陋的黑點。 它們沒有出現在每個人身上......一些開發人員看不到它,看起來很干凈。 我們還沒有弄清楚那些看起來不錯的PC和不合適的PC之間的共性。
但是......有更好的方法嗎?
添加AntiAliasGridFit
的TextRenderingHint 。
protected static Icon GetTrayIconFromCache(Color statusColor)
{
Bitmap bmp = new Bitmap(16,16);
Graphics circleGraphic = Graphics.FromImage(bmp);
circleGraphic.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;
circleGraphic.DrawString("n", new Font("Webdings", 12F, FontStyle.Regular), Brushes.White, -3f, -2f);
circleGraphic.DrawString("n", new Font("Webdings", 9F, FontStyle.Regular), new SolidBrush(statusColor), 0f, -1f);
Icon ico = Icon.FromHandle((bmp).GetHicon());
return ico;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.