我有一个.ico文件,其中嵌有5个图标大小,用作主应用程序图标和系统托盘图标.
当它显示在任务栏中时,图标正在使用所需的16×16格式.
当图标显示在通知区域/系统托盘中时,它使用的是32×32格式,Windows将其渲染为16×16的图标,看起来很糟糕.
如何强制窗口使用通知区域中的16×16图标大小?
这是我的代码将图标放在系统托盘中:
ContextMenu cmNotify = new ContextMenu(); MenuItem miNotify = new MenuItem(Properties.Resources.Notify_Text); miNotify.DefaultItem = true; miNotify.Click += new EventHandler(notifyHandler); cmNotify.MenuItems.Add(miNotify); notifyIcon = new NotifyIcon(); notifyIcon.Icon = this.Icon; notifyIcon.Visible = true; notifyIcon.ContextMenu = cmNotify; notifyIcon.Text = AppConstants.APPLICATION_NAME;
两种反应都很接近,但含有微量的毒素.您不应将请求的大小硬编码为16×16.
相反,查询SystemInformation.SmallIconSize来确定适当的维度.虽然默认值是16×16,但可以通过诸如DPI缩放等各种功能来改变.
有关此属性的更多信息,请参阅the MSDN article.