为什么在同一4k显示器上显示的winform不同

曼努埃尔

我们有一个旧的.net Windows窗体应用程序。我们已经用Web应用程序替换了大多数应用程序,但仍将Windows窗体应用程序用于管理任务。

在4k显示器上使用此应用程序时,看起来确实很糟糕,这是可以理解的。

但是外观会根据系统上的其他监视器而变化。该测试是在联想430上完成的,联想430具有通过显示端口连接的4k显示器。笔记本电脑显示器的分辨率为1920/1080,而4k显示器的分辨率为3840/2160。显示比例始终为200%。

以下所有屏幕截图均在4k监视器上拍摄。

  1. 一项测试同时激活两个监视器
  2. 仅使用第二个屏幕进行一次测试
  3. 关闭笔记本电脑显示器时进行的一项测试(这意味着系统仅可使用一台显示器)

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

我知道,如果不进行更改和设置dpiAware / dpiAwareness,我们的应用程序在4k上将无法正常显示。

但是我的问题是:为什么应用程序的外观仅根据激活的监视器而改变?有没有办法控制采用哪种“外观”?

霍尔格

也许您知道这一点,但是之前没有提到:

有3种应用程序:

  • 不了解DPI
  • 系统DPI感知
  • 每个监视器DPI感知

此处的详细信息:https : //msdn.microsoft.com/de-de/library/windows/desktop/dn469266(v=vs.85).aspx

您可以在app.config中的应用程序上设置DPI意识:

<appSettings>
    <add key="EnableWindowsFormsHighDpiAutoResizing" value="false" />
</appSettings>

和app.manifest:

<application xmlns="urn:schemas-microsoft-com:asm.v3">
  <windowsSettings>
    <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</dpiAware>
  </windowsSettings>
</application>

当您具有DPI> = 150%的缩放比例时,可以在应用程序上通过人民币另外控制->属性->兼容性->高DPI缩放比例

对于Windows窗体,默认值为DPI-Scaling,对于高DPI禁用。因此,一切都应立即可用。也许其中一项设置不是默认设置?尤其是在exe的RMB属性中的配置?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章