我試圖在系統托盤中顯示2-3個可更新字符,而不是顯示.ico文件 - 類似於CoreTemp在系統中顯示溫度時所做的操作嘗試:將文本寫入系統托盤而不是圖標
我用下面的代碼一起使用的NotifyIcon在我的WinForms應用程序:
Font fontToUse = new Font("Microsoft Sans Serif", 8, FontStyle.Regular, GraphicsUnit.Pixel);
Brush brushToUse = new SolidBrush(Color.White);
Bitmap bitmapText = new Bitmap(16, 16);
Graphics g = Drawing.Graphics.FromImage(bitmapText);
IntPtr hIcon;
public void CreateTextIcon(string str)
{
g.Clear(Color.Transparent);
g.DrawString(str, fontToUse, brushToUse, -2, 5);
hIcon = (bitmapText.GetHicon);
NotifyIcon1.Icon = Drawing.Icon.FromHandle(hIcon);
DestroyIcon(hIcon.ToInt32);
}
可悲的是這將產生一個差的結果沒有什麼像什麼CoreTemp得到:
你會認爲解決辦法是增加字體大小,但任何尺寸超過8不適合在圖像內。將位圖從16x16增加到32x32也不會做任何事 - 它會被調整大小。
然後出現了我想要顯示「8.55」而不是「55」的問題 - 圖標周圍有足夠的空間,但看起來不可用。
有沒有更好的方式來做到這一點?爲什麼窗戶可以做到以下,但我不能?
更新:
感謝@NineBerry一個很好的解決方案。要添加,我發現Tahoma
是最好的字體使用。
我希望其他應用程序只使用了一組內置的圖標,而不是試圖產生他們即時 –