.net – Windows从多图标文件中选择错误的图标,并自动渲染以更正大小

我有一个.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.

相关文章

Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...
Windows文件操作基础代码 Windows下对文件进行操作使用的一段...
Winpcap基础代码 使用Winpcap进行网络数据的截获和发送都需要...
使用vbs脚本进行批量编码转换 最近需要使用SourceInsight查看...