Windows WinForm 的高 DPI 缩放
Windows High DPI Scaling for WinForm
这是我遇到很多麻烦的事情。经过几天的试验,我终于弄清楚了如何正确缩放 WinForms。这也可能对其他人有所帮助。
有很多修改app.manifest或app.config文件的建议。该解决方案可能适用于 Windows 的早期版本,但 none 对我有用。安装我的应用程序后,图片和控件变得混乱(在 Visual Studio 调试中一切正常)。经过一些测试,我发现将 "overwrite high dpi scaling" 选项设置更改为 "application" 对我有用。但我想在应用程序中支持这一权利,而不是修改某些 Windows 设置。
我偶然发现了一份 Windows 支持文档,解释说他们已经用最新版本的 Windows 更改了一些 DPI 缩放比例,旧方法可能不起作用。
您实际上需要做的就是按照以下步骤操作:
- 找到您的 app.config
- 在
</startup>
和 <userSettings>
之间,插入以下代码段
<System.Windows.Forms.ApplicationConfigurationSection>
<add key="DpiAwareness" value="PerMonitorV2" />
</System.Windows.Forms.ApplicationConfigurationSection>
- 保存文件并重新加载您的项目
- 确保您已从清单中删除任何其他调整
- 在您的主要方法或入口点中进行设置
Application.EnableVisualStyles()
就是这样!在机器上安装后,您的应用程序在 4K 环境中应该看起来很棒。
如需进一步参考,请参阅 this article from Microsoft.
这是我遇到很多麻烦的事情。经过几天的试验,我终于弄清楚了如何正确缩放 WinForms。这也可能对其他人有所帮助。
有很多修改app.manifest或app.config文件的建议。该解决方案可能适用于 Windows 的早期版本,但 none 对我有用。安装我的应用程序后,图片和控件变得混乱(在 Visual Studio 调试中一切正常)。经过一些测试,我发现将 "overwrite high dpi scaling" 选项设置更改为 "application" 对我有用。但我想在应用程序中支持这一权利,而不是修改某些 Windows 设置。
我偶然发现了一份 Windows 支持文档,解释说他们已经用最新版本的 Windows 更改了一些 DPI 缩放比例,旧方法可能不起作用。
您实际上需要做的就是按照以下步骤操作:
- 找到您的 app.config
- 在
</startup>
和<userSettings>
之间,插入以下代码段
<System.Windows.Forms.ApplicationConfigurationSection>
<add key="DpiAwareness" value="PerMonitorV2" />
</System.Windows.Forms.ApplicationConfigurationSection>
- 保存文件并重新加载您的项目
- 确保您已从清单中删除任何其他调整
- 在您的主要方法或入口点中进行设置
Application.EnableVisualStyles()
就是这样!在机器上安装后,您的应用程序在 4K 环境中应该看起来很棒。 如需进一步参考,请参阅 this article from Microsoft.