我正在尝试将WPF对话框窗口放置在当前屏幕的左上角。但是,我不知道如何获取除主屏幕以外的任何其他屏幕的坐标。 对于主屏幕,“上”和“左”将为0。但是,对于其他任何屏幕,我都需要知道偏移量。 我可能有第二个甚至第三个屏幕。要使事情变得更复杂:理论上,其他屏幕也可以位于主屏幕的左侧,顶部或下方。
我做了一些研究,但找不到解决方案。有人可以指出我正确的方向吗?
答案 0 :(得分:0)
尝试将值设置为Window.Left和Window.Top:
window.Left = 0;
window.Top = 0-window.Height;
window.ShowDialog();
答案 1 :(得分:0)
事实证明,我只是没有看到必要的属性:每个Screen对象在其WorkingArea中都有自己的Top和Left属性。
这对我有用:
var topLeftCornerOfMainWindow = new System.Drawing.Point((int)System.Windows.Application.Current.MainWindow.Left, (int)System.Windows.Application.Current.MainWindow.Top);
var currentScreen = Screen.FromPoint(topLeftCornerOfMainWindow);
this.Top = currentScreen.WorkingArea.Top;
this.Left = currentScreen.WorkingArea.Left;
this.Width = currentScreen.WorkingArea.Width;
this.Height = currentScreen.WorkingArea.Height;