我找不到有关系统托盘图标的任何信息,以及它们应该采用什么尺寸才能获得最佳质量。我应该使用不止一种尺寸(16x16、32x32、64x64)吗?
我目前使用 16x16 .ICO 图标,它们看起来很困惑。
最佳答案
它们是小图标 (ICON_SMALL
)。您可以通过调用以下命令了解尺寸:
GetSystemMetrics(SM_CXSMICON)
我认为假设它们是正方形是相当安全的,但如果您偏执,那么您可以随时查询SM_CYSMICON
。
在我的 Windows 7 机器上,它们的大小为 16px。但如果您使用字体缩放,那么它们会更大。对于 125% 的字体缩放(例如大字体),您将需要一个 20 像素的图标。
如果您手头没有 20px 版本,那么最好的方法是即时生成一个版本,并将您的 16px 版本放在新的 20px 图标的中间。
更新
NOTIFYICONDATA
的文档建议使用 LoadIconMetric
传递 LIM_SMALL
,这相当于我上面概述的方法。
但是,NOTIFYICONDATA
主题还表示要使用仅包含 16px 和 32px 版本图标的图标资源。这个建议是虚假的,因为任何人都可以亲眼看到,大字体下的通知图标是 20px 图标,而 LoadIconMetric
的比例从 32 到 20。我建议提供 16、20、24、32px 版本.
在 XP 上,LoadIconMetric
不存在,因此您需要实现后备例程。
关于winforms - NotifyIcon 使用哪种格式和大小的图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7306509/