簡體   English   中英

從Webdings字體創建系統托盤圖標

[英]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之間的共性。

但是......有更好的方法嗎?

添加AntiAliasGridFitTextRenderingHint

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM