回答
這裏是爲我工作的代碼,
public static Icon GetIcon(string text)
{
//Create bitmap, kind of canvas
Bitmap bitmap = new Bitmap(32, 32);
Icon icon = new Icon(@"Images\PomoDomo.ico");
System.Drawing.Font drawFont = new System.Drawing.Font("Calibri", 16, FontStyle.Bold);
System.Drawing.SolidBrush drawBrush = new System.Drawing.SolidBrush(System.Drawing.Color.White);
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, 1, 2);
//To Save icon to disk
bitmap.Save("icon.ico", System.Drawing.Imaging.ImageFormat.Icon);
Icon createdIcon = Icon.FromHandle(bitmap.GetHicon());
drawFont.Dispose();
drawBrush.Dispose();
graphics.Dispose();
bitmap.Dispose();
return createdIcon;
}
您可以將一行更改爲位圖bitmap = new Bitmap(icon.Width,icon.Height); – 2016-07-13 09:54:35
由於系統托盤圖標沒有伴隨文字,因此您可以將文字疊加在圖標本身上,也可以使用工具提示樣式的彈出窗口。
覆蓋文本(可能是通過將其嵌入程序生成的圖標中)會非常煩瑣,但更重要的可能是一個壞主意,因爲圖標最適合用來顯示分類狀態信息,更多詳細信息可用於流行-up文本或彈出窗口。例如,如果圖標代表收件箱狀態,則顯示「新郵件」而不顯示新郵件數量就足以顯示「新郵件」而不顯示新郵件。這允許顯示更清晰的圖標,而不需要用戶詳細解密。
灰色區域是指示過程狀態的圖標。你可能只有「正在進行中」與「完整」圖標,但我已經看到帶有嵌入進度條的圖標,我認爲這是一個很好的方法。顯然,一個小圖標中的進度條並不真正顯示精確的數字數據,並且可能更接近表示分類數據(根本無法完成,部分完成,完成),具體取決於分辨率。
如果您決定採用這種做法,那麼這個鏈接應該幫助:
- Code Project article展示如何改變一個圖標,顯示彈出式文本,並使用WPF彈出窗口。
如果你仍然覺得你的用例值得在圖標上疊加文本,那麼我認爲程序生成圖標將成爲實現它的方式。我認爲你需要首先將文本添加到圖像,然後將其轉換爲圖標。這些鏈接應該幫你:
- Turn on the Code C# snippet for adding text to an image
- Code Prject article on creating an .ico file on the fly - 很全面,很可能您的需求有點矯枉過正,但你可以拉出來的代碼供您使用。
你爲什麼認爲用一些文字在飛行中生成圖標是個壞主意?你還沒有回答我的問題如何在圖標上添加文字。 :( – iraSenthil 2011-05-11 02:24:48
我認爲這通常是一個壞主意,因爲圖標最好用於顯示分類信息而不是精確的數字數據。我會更新我的答案以澄清這一點,併爲程序圖標創建添加一些提示,如果您仍然想要去 – Ergwun 2011-05-11 02:44:48
我認爲沒有什麼是不好的,如果它增強用戶體驗 – iraSenthil 2011-05-11 03:23:09
- 1. C#將圖標添加到ListView行
- 2. 如何將圖標添加到Tree.TreeNode
- 3. 如何將標籤添加到繪圖
- 4. 如何將圖標添加到JPanel
- 5. 如何將圖標添加到cx_freeze
- 6. 將圖標添加到GridViewColumnHeader
- 7. 將圖標添加到.exe
- 8. 如何將自定義標記圖標添加到Google地圖?
- 9. 如何將QLPreviewController作爲子視圖添加到目標中C
- 10. 如何將圖標添加到導航抽屜中的標題?
- 11. 如何在繪圖中將上標或下標添加到三維圖上?
- 12. 如何在PyGTK中將狀態圖標或區域添加到狀態圖標
- 13. 如何在WinForms中將圖像添加到TabControl的標籤中?
- 14. 將圖像/圖標添加到chart.js中的特定座標
- 15. 將圖標添加到項目中?
- 16. 如何在Qt中將圖標添加到QComboBox?
- 17. 如何將標籤添加到小部件屏幕圖標?
- 18. 如何將UAC盾牌圖標添加到標準消息框?
- 19. 如何使用XY座標將標記添加到ArcGIS地圖
- 20. Qt,如何將圖標添加到tabWidget標題?
- 21. 如何使用JSON座標將標記添加到OPENLAYERS地圖?
- 22. 如何將徽標添加到Windows文件圖標?
- 23. 如何在navbar odoo中添加圖標? 「對話」圖標後
- 24. 如何在tinymce中添加圖標?
- 25. 如何將圖標\縮略圖添加到wpf列表框
- 26. openlayer:如何將圖標或圖案添加到LineString上
- 27. 如何將自定義圖標添加到谷歌地圖v3
- 28. 如何將標記添加到Plots.jl圖的圖例?
- 29. 如何添加圖標+ URL
- 30. 如何添加Tablayout圖標
我相當肯定的系統托盤不支持文本:),也許作爲工具提示壽。 – Aren 2011-05-11 00:47:00
系統托盤圖標很小。你期望能在一個文本中填入多少文本? – Gabe 2011-05-11 01:15:50
只有兩個數字... – iraSenthil 2011-05-11 02:23:04