我的WPF应用程序是开箱即用的每个监视器dpi-aware。我没想到呢?

时间:2016-03-08 10:44:25

标签: wpf scaling dpi-aware

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

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

2 个答案:

答案 0 :(得分:7)

当一个应用程序窗口移动到具有不同DPI的不同监视器时,您看到的是系统缩放的示例。这是因为WPF应用程序是默认的System DPI Aware。因此,如果您仔细注意,当目标DPI较高时,您将看到WPF视觉/文本变得模糊,或者当目标DPI较低时,它们看起来模糊。  另请注意,监视器分辨率对WPF应用程序无关紧要,因为WPF与设备分辨率无关(它的测量单位是设备无关的像素)。

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

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

答案 1 :(得分:1)

继续评论的对话。
是的,对于Windows 8.1也是如此 这是您链接的帖子中的注释

  

Windows Presentation Foundation(WPF)应用程序默认情况下是系统DPI感知的。

HTH