Bri*_*anH 9 .net windows icons rendering
我有一个嵌入了5个图标大小的.ico文件,用作主应用程序图标和系统托盘图标.
当它出现在任务栏中时,图标使用所需的16x16格式.当图标显示在通知区域/系统托盘中时,它使用32x32格式,Windows将其渲染为16x16图标,这看起来很糟糕.
如何强制窗口在通知区域中使用16x16图标大小?这是我将代码放入系统托盘的代码:
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;
Run Code Online (Sandbox Code Playgroud)
小智 15
两种反应都很接近,但含有微妙的毒药.您不应将请求的大小硬编码为16x16.
而是查询SystemInformation.SmallIconSize以确定适当的维度.虽然默认值肯定是16x16,但可以通过各种方式进行更改,例如DPI缩放.
有关此属性的更多信息,请参阅MSDN文章.
使用的一个例子是
notifyIcon.Icon = new System.Drawing.Icon(this.Icon, SystemInformation.SmallIconSize),
Run Code Online (Sandbox Code Playgroud)
改变这个:
notifyIcon.Icon = this.Icon;
Run Code Online (Sandbox Code Playgroud)
对此:
notifyIcon.Icon = new System.Drawing.Icon(this.Icon, 16, 16);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2514 次 |
| 最近记录: |