首页 > 解决方案 > WinForm 的 Windows 高 DPI 缩放

问题描述

这是我遇到很多麻烦的事情。经过几天的试验,我终于弄清楚了如何正确扩展 WinForms。这也可能对其他人有所帮助。

有很多关于修改 app.manifest 或 app.config 文件的建议。该解决方案可能适用于早期版本的 Windows,但没有一个对我有用。安装我的应用程序后,图片和控件搞砸了(在 Visual Studio 中调试一切正常)。经过一些测试,我发现将“覆盖高 dpi 缩放”选项设置更改为“应用程序”对我有用。但我想在应用程序中支持这一权利,而不是修改某些 Windows 设置。 在 Windows 内更改高 dpi

我偶然发现了一份 Windows 支持文档,解释说他们已经使用最新版本的 Windows 更改了一些 DPI 缩放,并且旧方法可能无法正常工作。

标签: c#.netwinformsscalingdpi

解决方案


您实际上需要做的就是执行以下步骤:

  1. 找到您的 app.config
  2. </startup>and之间<userSettings>,插入以下代码段
<System.Windows.Forms.ApplicationConfigurationSection>
  <add key="DpiAwareness" value="PerMonitorV2" />
</System.Windows.Forms.ApplicationConfigurationSection>
  1. 保存文件并重新加载您的项目
  2. 确保您已从清单中删除任何其他调整
  3. 在您的主要方法或入口点中设置它

Application.EnableVisualStyles()

而已!在机器上安装后,您的应用程序在 4K 环境中应该看起来很棒。如需进一步参考,请参阅Microsoft 的这篇文章。


推荐阅读