Как правильно получить положение окна в 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) позицию, которая не отражает фактическую позицию окна.
Я заметил, что Window имеет закрытые члены _actualTop и _actualLeft, но не имеет публичного свойства для их раскрытия.
Как вы получаете правильное значение?