Windows 10 高 DPI 屏幕上的 WPF 应用程序模糊

Dan*_*ott 4 c# wpf highdpi windows-10

WPF 应用程序通常是否在开箱即用的高 DPI 屏幕上正确缩放(无需进一步自定义清单等?)。这是我的理解他们做的?

在笔记本电脑屏幕上查看时,我编写的两个 WPF 应用程序在我的新笔记本电脑(运行 Windows 10)上都显得模糊。通常,笔记本电脑的主显示器设置为外部低 dpi 显示器,内置笔记本电脑面板的缩放比例为 125%。但是,无论是否插入低 dpi 显示器,都会出现模糊。

我认为这可能与我的两个应用程序的启动方式有关(通过 main 方法,而不是启动主窗口的默认代码模板),但我刚刚启动了 Visual Studio 2015 并生成了一个全新的 WPF带有项目模板的应用程序(只是空白表单上的几个单选按钮),它也不会在我的系统上扩展为高 DPI。

值得一提的是,我已经在我的 Windows 副本上配置了“首选外部清单”注册表设置,以允许每个应用程序使用清单禁用高 dpi 缩放。(即HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide "PreferExternalManifest"=dword:00000001)。

mag*_*981 5

.net 4.6.2开始,WPF 应用程序默认为每个 Monitor DPI 感知,而不是早期版本:

WPF 应用程序现在启用了每个监视器的 DPI 感知。这种改进对于将不同 DPI 级别的多个显示器连接到一台机器的情况至关重要。由于 WPF 应用程序的全部或部分在监视器之间转换,WPF 的预期行为是自动将应用程序的 DPI 与屏幕匹配。现在确实如此。在以前的版本中,您必须编写额外的本机代码才能在 WPF 应用程序中启用每个监视器的 DPI 感知。

因此,安装 .4.6.2 开发工具并将您的应用程序定位到 4.6.2 以获得对此的支持。

  • 这不是真的。从 .NET Framework 4.6.2 开始,WPF 应用程序可以选择进入 Per Monitor DPI Awareness 模式,默认情况下不启用此行为。 (2认同)