我们有一个遗留的.net Windows窗体应用程序.我们已经用Web应用程序替换了大部分内容,但仍然使用Windows窗体应用程序来执行管理任务.
当这个应用程序在4k显示器上使用时,它看起来非常糟糕,这是可以理解的.
但外观会根据系统上的其他显示器而变化.测试是在lenovo 430上完成的,它有一个4k显示器通过显示端口连接.笔记本电脑显示器的分辨率为1920/1080,而4k显示器的分辨率为3840/2160.显示比例始终为200%.
所有以下屏幕截图均在4k显示器上拍摄.

我知道如果没有更改并设置dpiAware/dpiAwareness,我们的应用程序在4k上看起来不会很好.
但我的问题是:为什么应用程序只会根据哪些显示器处于活动状态而发生变化?有没有办法控制哪种"外观"?
小智 5
也许你知道这一点,但之前没有提到:
有3种应用:
详情请见:https : //msdn.microsoft.com/de-de/library/windows/desktop/dn469266(v=vs.85).aspx
您可以在 app.config 中为您的应用程序设置 DPI 感知:
<appSettings>
<add key="EnableWindowsFormsHighDpiAutoResizing" value="false" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)
和应用程序清单:
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</dpiAware>
</windowsSettings>
</application>
Run Code Online (Sandbox Code Playgroud)
当你的 DPI >= 150% 缩放可以通过应用程序的人民币额外控制 -> 属性 -> 兼容性 -> 高 DPI 缩放
对于 Windows 窗体,默认为 DPI 缩放禁用高 DPI。所以一切都应该开箱即用。也许此设置之一不是默认设置?尤其是exe上的RMB属性中的配置?
| 归档时间: |
|
| 查看次数: |
2595 次 |
| 最近记录: |