1
121
一旦超过100%(或者勾选“XP-style DPI scaling”复选框时超过125%),Windows默认接管UI的缩放。它通过让你的应用程序将其输出渲染为位图并将该位图绘制到屏幕来实现。位图的重新缩放不可避免地使文本看起来模糊。一个称为“DPI虚拟化”的功能,它使旧程序在高分辨率监视器上保持可用。
您必须明确地让它知道您可以通过添加
您还可以在Main()方法中使用pinvoke SetProcessDPIAware(),例如,如果使用ClickOnce进行部署,则需要:
更新,如果您使用VS2015更新1或更高版本,这一常见需求最终会简单一些。添加的清单已经有相关指令,只需删除注释。 搜索关键字,以便我可以找到这篇文章回来:dpiAware |
2
15
应用程序可以以两种不同的模式开发。 第一种方法是声明我们的应用程序不支持DPI(不声明任何内容都将默认为DPI)。在这种情况下,操作系统将在 预期96 DPI 然后对我们之前讨论过的位图缩放进行调整。结果将是一个模糊的应用程序,但有一个正确的布局。 第二个选项是将应用程序声明为DPI感知。在这种情况下,操作系统不会进行任何缩放,而是让应用程序根据屏幕的原始DPI进行渲染。对于每个监视器的DPI环境,应用程序将使用所有屏幕中最高的DPI进行渲染,然后将此位图缩小到每个监视器的适当大小。缩小尺寸会比增大尺寸带来更好的观看体验,但您可能仍然会注意到一些模糊。 如果要避免这种情况,必须根据监视器DPI aware声明应用程序。然后,必须检测应用程序何时被拖到不同的监视器上,并根据当前监视器的DPI进行渲染。 声明DPI感知是在清单文件中完成的。 请参阅以下链接 stackoverflow |
3
3
这些建议对我都不起作用,但是,在我删除
|
4
1
使用.NET Framework 4.7和Windows 10 Creators更新或更新版本,必须执行以下操作才能为Windows窗体应用程序配置高DPI支持: 声明与Windows 10兼容。
为此,请在
在中启用每个监视器的DPI感知
Windows窗体引入了一个新的 System.Windows.Forms.ApplicationConfigurationSection 元素以支持从.NETFramework4.7开始添加的新功能和自定义。要利用支持高DPI的新功能,请将以下内容添加到应用程序配置文件中。
重要的 在.NET框架的早期版本中,您使用清单来添加高DPI支持。不再建议使用此方法,因为它会覆盖app.config文件中定义的设置。 调用静态EnableVisualStyles方法。 这应该是应用程序入口点中的第一个方法调用。例如:
这样做的好处是支持动态DPI场景,用户在启动Windows窗体应用程序后更改DPI或比例因子。 |
5
0
至少从Visual Studio 2017开始,您只需添加一个清单文件并取消注释此部分:
|
JOO · 使用udpClient从多个IP地址连续接收数据 2 年前 |
Futterkiste · 函数比例图 2 年前 |
user18789895 · 我应该如何验证WinForms应用程序? 2 年前 |
beriscen · 如何使整个链接标签区域可点击? 2 年前 |
lpmaxim · 当鼠标光标悬停在按钮上时,背景图像会移动 2 年前 |