禁用Windows高DPI的两种方法

Windows的高DPI支持是通过DWM(Desktop Window Manager)缩放实现的,但是有时候我们不希望这种效果(例如缩放会使一些内容变得模糊),因此需要禁用Windows高DPI对程序的缩放。有两种方式可以实现这种效果:一个是使用应用程序清单文件,一个是使用系统API实现。

1、使用清单文件

这里以Winform为例,右键项目->添加->新建项->应用程序清单文件,将含有dpiAware标签的属性取消注释,代码如下:

<application xmlns="urn:schemas-microsoft-com:asm.v3">
  <windowsSettings>
    <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
  </windowsSettings>
</application>

2、使用系统API

下面的代码对Win7及以上的系统禁用高DPI。

if (Environment.OSVersion.Version.Major >= 6)
{
    SetProcessDPIAware();
}

[DllImport("user32.dll")]
public static extern bool SetProcessDPIAware();

 

展开阅读全文

没有更多推荐了,返回首页