我正在尝试找出为什么从Program Files(x86)目录运行应用程序时,应用程序的图标会显示不同。
从Release文件夹执行Release版本的程式码时,ToolStripMenuItem图标会正确显示在NotifyIcon的右击功能表内。但是,当我将可可执行移至Program Files(x86)文件夹时,图标会突然变小:
| 发布文件夹|程序文件(x86)文件夹|
| - -|- -|
|
|
|
我已审查了以下选项,但它们未解决问题:
- notifyicon image looks terrible once image ends up in system tray
- 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感知后|
| - -|- -|
|
|
|
1条答案
按热度按时间6rvt4ljy1#
这似乎是Windows解释32位和64位应用程序的方式的问题。
如果为32位计算机生成的应用程序放置在64位计算机上的
Program Files (x86)
中,并且缩放比例未设置为100%,则在缩放WinForms应用程序时会遇到问题。如果应用程序是为64位计算机生成的,并且放置在Program Files
文件夹中,则此问题将消失。解决此问题的方法是创建应用程序的64位版本,并将其置于
Program Files
下。