如何在当前屏幕的左上角放置一个对话框窗口?

时间:2019-06-11 15:20:36

标签: wpf dialog window screen

我正在尝试将WPF对话框窗口放置在当前屏幕的左上角。但是,我不知道如何获取除主屏幕以外的任何其他屏幕的坐标。 对于主屏幕,“上”和“左”将为0。但是,对于其他任何屏幕,我都需要知道偏移量。 我可能有第二个甚至第三个屏幕。要使事情变得更复杂:理论上,其他屏幕也可以位于主屏幕的左侧,顶部或下方。

我做了一些研究,但找不到解决方案。有人可以指出我正确的方向吗?

2 个答案:

答案 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;