我的 WPF 应用程序开箱即用,可识别每个显示器的 dpi。我没想到?

My WPF app is per-monitor dpi-aware out of the box. I was not expecting that?

我对 WPF 中的每个监视器 dpi 感知感到有点困惑。我认为您需要做一些工作才能使 windows 在不同的显示器上正确缩放(如 Developing a Per-Monitor DPI-Aware WPF Application 中所述)。

但我只是 运行 我的应用程序在 PC 上有两个显示器(2560x1440 和 2160x1440),当我在显示器之间移动对话时,对话会自动缩放。这是最新的快速环 Windows 10. 我错过了什么吗?

继续评论中的对话。
是的,这与 Windows 8.1.
相同 这是来自您链接的 post

的注释

Windows Presentation Foundation (WPF) applications are by default system DPI-aware.

HTH

您看到的是当一个应用 window 移动到具有不同 DPI 的不同显示器时系统缩放的示例。这是因为 WPF 应用程序默认是系统 DPI 感知的。因此,如果您仔细观察,您会发现当目标 DPI 较高时 WPF visuals/text 变得模糊,或者当目标 DPI 较低时它们看起来模糊。 另外,请注意监视器分辨率对于 WPF 应用程序并不重要,因为 WPF 与设备分辨率无关(它的测量单位是设备独立像素)。

好消息:.NET 4.6.2 预览版刚刚发布,它具有开箱即用的 Per Monitor DPI Awareness。在此处查看开发人员指南和示例:

https://github.com/Microsoft/WPF-Samples/tree/master/PerMonitorDPI