在我的所有应用程序中,如果我希望根据当前的显示器分辨率调整窗口大小,请使用以下内容:
System.Drawing.Rectangle workingArea = System.Windows.Forms.Screen.FromHandle(new System.Windows.Interop.WindowInteropHelper(App.Current.MainWindow).Handle).WorkingArea;
但是,我有一个客户端,他使用多个显示器,但这只是不起作用。调整大小的窗口跨越到第二个监视器。只有这一个客户。我用多台显示器对它进行了测试,效果很好。
有人可以建议更好/替代方法吗?
答案 0 :(得分:0)
对于任何FrameworkElement
,您都可以使用此功能获取其大小(Height
和Width
)。
FrameworkElement.ActualWidth;
FrameworkElement.ActualHeight;
因此,在这种情况下,您可以将它用于您的窗口。
答案 1 :(得分:-1)
您需要使用Windows窗体的类System.Windows.Forms.Screen
。它允许屏幕枚举,并获取WPF窗口的屏幕,使用此Screen.FromHandle(new WindowInteropHelper(this).Handle)
代码段。但是,高分辨率屏幕存在问题 - 您需要将WPF的96 dpi转换为显示器具有的任何像素密度。