首页 > 解决方案 > 对 WPF 和 Winform 中“Screen.Bounds”的返回感到困惑

问题描述

我有两个显示器(1:3840X2160 200% 比例,2:1280X1024 100% 比例)

他们的样子

然后我写一些东西来获得我的屏幕分辨率。

        System.Drawing.Rectangle entireSize = System.Drawing.Rectangle.Empty;
        foreach (System.Windows.Forms.Screen screen in System.Windows.Forms.Screen.AllScreens)
            Console.WriteLine(screen.Bounds.Width + "," + screen.Bounds.Height);

混乱来了。

TEST1:在 Winfrom 中,我得到了输出

1280,1024 1920,1080

TEST2:在 WPF 中,它显示

2560,2048 3840,2160

TSET3:检查 dpi Winform:96 WPF:192

这是我的问题:

  1. 为什么剂量 Winform\Wpf 返回不同的分辨率/DPI?
  2. 显然来自 wpf 的 '2560,2048' 是不正确的,但是为什么 wpf 返回 '1280X1024 * 200%' 呢?
  3. 如何从 winform 和 wpf 获得相同的输出?

标签: wpfwinformsdpi-aware

解决方案


推荐阅读