加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 为什么winform在同一台4k显示器上显示不同

发布时间:2020-12-15 08:15:34 所属栏目:百科 来源:网络整理
导读:我们有一个遗留的.net Windows窗体应用程序. 我们已经用Web应用程序替换了大部分内容,但仍然使用Windows窗体应用程序来执行管理任务. 当这个应用程序在4k显示器上使用时,它看起来非常糟糕,这是可以理解的. 但外观会根据系统上的其他显示器而变化. 测试是在le
我们有一个遗留的.net Windows窗体应用程序.
我们已经用Web应用程序替换了大部分内容,但仍然使用Windows窗体应用程序来执行管理任务.

当这个应用程序在4k显示器上使用时,它看起来非常糟糕,这是可以理解的.

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

所有以下屏幕截图均在4k显示器上拍摄.

>两个监视器都处于活动状态的测试
>仅使用第二个屏幕进行一次测试
>关闭笔记本电脑的一次测试(这意味着只有一台显示器可供系统使用)

我知道如果没有更改并设置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属性的配置?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读