WPF当前屏幕尺寸

时间:2018-01-23 10:16:34

标签: c# wpf

在我的所有应用程序中,如果我希望根据当前的显示器分辨率调整窗口大小,请使用以下内容:

     System.Drawing.Rectangle workingArea = System.Windows.Forms.Screen.FromHandle(new System.Windows.Interop.WindowInteropHelper(App.Current.MainWindow).Handle).WorkingArea;

但是,我有一个客户端,他使用多个显示器,但这只是不起作用。调整大小的窗口跨越到第二个监视器。只有这一个客户。我用多台显示器对它进行了测试,效果很好。

有人可以建议更好/替代方法吗?

2 个答案:

答案 0 :(得分:0)

对于任何FrameworkElement,您都可以使用此功能获取其大小(HeightWidth)。

FrameworkElement.ActualWidth;
FrameworkElement.ActualHeight;

因此,在这种情况下,您可以将它用于您的窗口。

答案 1 :(得分:-1)

您需要使用Windows窗体的类System.Windows.Forms.Screen。它允许屏幕枚举,并获取WPF窗口的屏幕,使用此Screen.FromHandle(new WindowInteropHelper(this).Handle)代码段。但是,高分辨率屏幕存在问题 - 您需要将WPF的96 dpi转换为显示器具有的任何像素密度。