为了账号安全,请及时绑定邮箱和手机立即绑定

如何配置应用程序以在具有高DPI设置(例如150%)的计算机上正确运行?

如何配置应用程序以在具有高DPI设置(例如150%)的计算机上正确运行?

偶然的你 2019-05-27 10:38:22
如何配置应用程序以在具有高DPI设置(例如150%)的计算机上正确运行?我在C#中创建了一个简单的Winforms应用程序。当我在具有高DPI设置(例如150%)的机器上运行应用程序时,应用程序会按比例放大。到现在为止还挺好!但是,不是使用更高的字体大小渲染字体,所有文本也只是按比例放大。这当然导致非常模糊的文本(在按钮等所有控件上)。Windows不应该正确地呈现文本吗?例如,我的应用程序的标题栏呈现清晰明了。
查看完整描述

4 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

应用程序可以以两种不同的模式开发。

第一个是声明我们的应用程序是非DPI感知的(不会声明任何默认的东西)。在这种情况下,操作系统将使我们的应用程序在预期的96 DPI下呈现,然后将对我们之前讨论过的位图缩放进行处理。结果将是一个模糊的应用程序,但具有正确的布局。

第二种选择是将应用程序声明为DPI感知。在这种情况下,操作系统不会进行任何缩放,并会让您的应用程序根据屏幕的原始DPI进行渲染。如果是每个监视器DPI环境,您的应用程序将以所有屏幕的最高DPI进行渲染,然后该位图将按比例缩小到每个监视器的正确大小。降尺度比升级产生更好的观看体验,但您可能仍会注意到一些模糊性。

如果要避免这种情况,则必须将应用程序声明为per-monitor-DPI-aware。然后,您必须检测何时将应用程序拖过不同的监视器并根据当前DPI的DPI进行渲染。

声明DPI感知是在清单文件中完成的。

请参阅以下链接 stackoverflow


查看完整回答
反对 回复 2019-05-27
  • 4 回答
  • 0 关注
  • 3826 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信