winforms 从程序文件x86运行时通知菜单图标变小

syqv5f0l  于 2022-11-25  发布在  其他
关注(0)|答案(1)|浏览(101)

我正在尝试找出为什么从Program Files(x86)目录运行应用程序时,应用程序的图标会显示不同。
从Release文件夹执行Release版本的程式码时,ToolStripMenuItem图标会正确显示在NotifyIcon的右击功能表内。但是,当我将可可执行移至Program Files(x86)文件夹时,图标会突然变小:
| 发布文件夹|程序文件(x86)文件夹|
| - -|- -|
|

|

|
我已审查了以下选项,但它们未解决问题:

  1. notifyicon image looks terrible once image ends up in system tray
  2. Change size of ToolStripMenuItem
    更多信息:
  • dpi缩放已在app.manifest文件中启用
  • 图标存储在ImageList中,然后根据需要复制到菜单项中
  • 使用Icon.ExtractAssociatedIcon(tp.path).ToBitmap()加载图标

我将继续尝试,并希望找到一个解决办法。任何和所有的建议欢迎。

更新#1

我在本地创建了下面的项目(https://www.codeproject.com/Tips/627796/Doing-a-NotifyIcon-Program-the-Right-Way),并注意到添加DPI感知似乎有问题。通过添加代码使应用程序DPI感知(见上面的链接1),菜单图标看起来如下:
| DPI感知之前|DPI感知后|
| - -|- -|
|

|

|

6rvt4ljy

6rvt4ljy1#

这似乎是Windows解释32位和64位应用程序的方式的问题。
如果为32位计算机生成的应用程序放置在64位计算机上的Program Files (x86)中,并且缩放比例未设置为100%,则在缩放WinForms应用程序时会遇到问题。如果应用程序是为64位计算机生成的,并且放置在Program Files文件夹中,则此问题将消失。
解决此问题的方法是创建应用程序的64位版本,并将其置于Program Files下。

相关问题