Как правильно получить положение окна в WPF?
Вот некоторые попытки, которые я предпринял. Первая попытка, очевидная
Point GetPosition(Window win)
{
return new Point(win.Top, win.Left);
}
, но это возвращает «неправильную» позицию, когда окно развернуто. Вторая попытка:
Point GetPosition(Window win)
{
if (win.WindowState == WindowState.Maximized)
return new Point(0, 0);
else
return new Point(win.Top, win.Left);
}
Почти там, но есть еще проблема: когда у вас есть два (или более) экрана и окно развернуто на втором экране, вы получаете позицию (0, 0), которая не отражает фактическое окно position.
Я заметил, что Window имеет закрытые члены _actualTop и _actualLeft, но не имеет публичного свойства для их раскрытия.
Как получить правильное значение?