回答
这里是为我工作的代码,
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