Положение окна WPF
Окно WPF запускается с WindowState="Maximized". Если сразу после запуска посмотреть Left или Top окна то они будут равны -8. Собственно вопрос, как получить это значение при выполнении программы? Я так понял они определяются темой. Можно конечно при первом отображении окна запомнить эти значения и использовать, а можно ли как-то по другому это сделать? Через SystemParameters тоже ничего получить не удалось. На скриншоте LiveTree и в диспетчере свойств видно -8. Как добраться до этих значений из кода? 
Ответы (1 шт):
Записывать измененя Left и Top можно по событию окна LocationCahnged
Например, если у вас MVVM, то в кодбихайнд можно добавить и подключить к окну обработчик
MainWindow.xaml.cs
private void Window_LocationChanged(object sender, EventArgs e)
{
MainViewModel vm = DataContext as MainViewModel;
vm.WindowX = Left;
vm.WindowY = Top;
}
и подключить его
LocationChanged += Window_LocationChanged
А в MainViewModel добавить эти свойства
MainViewModel.cs
private double _windowX;
private double _windowY;
public double WindowX
{
get => _windowX;
set
{
_windowX = value;
OnPropertyChanged(nameof(WindowX));
}
}
public double WindowY
{
get => _windowY;
set
{
_windowY = value;
OnPropertyChanged(nameof(WindowY));
}
}
И уже к этим свойствам можно будет прибиндить все что угодно.
Возможно, с точки хрения MVVM это не совсем правильно, но пока в голову ничего другого не идет.