如何在程序中激活“禁用高DPI缩放”功能

7
我正在使用Visual Studio 2010使用C#开发Windows桌面应用程序。我发现如果使用高dpi显示设置,这个应用程序会被缩放。但是,如果我通过在Windows资源管理器上鼠标右键单击菜单激活文件属性“禁用高dpi设置下的显示缩放”,似乎它就没有被缩放。
是否有一种方法可以在Visual Studio 2010 C#或更高版本中以编程方式激活“禁用高dpi设置下的显示缩放”?我尝试设置应用程序清单文件,但还没有成功设置。
1个回答

7

对于我来说,使用清单文件(Visual C# 项目中的 app.manifest)解决了这个问题。例如:

<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
  <dpiAware>true</dpiAware>
</asmv3:windowsSettings>

当然,这应该在您的主要“组件”部分内。

P.S. 我在调试GitExtensions时验证了此内容。

P.P.S. 我知道这个问题很久了,但可能仍有人需要这些信息。

更新:然而,这可能会导致窗体上的组件自动不希望的调整大小。


1
使用.NET Framework 4.6及更高版本的框架,代码将自动在app.manifest中生成。它被注释掉了,所以您需要取消注释,但如果您使用的是4.6及更高版本,则还需要调整app.Config,在其中将“EnableWindowsFormsHighDpiAutoResizing”设置为“true”。 - amalgamate
1
顺便说一句,使用这种技术来禁用显示缩放对我非常有效。在针对单个屏幕分辨率时非常有用。 - amalgamate

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接