У меня есть метод, который принимает высоту и ширину окна, когда WindowState изменяется с Window.StateChanged, но когда я использую стыковку MS Windows для стыковки окна, приложение обнаруживает изменение, запускает обработчик событий, затем стыкуется и дает мне неправильную высоту / ширину окна.
private void Window_Loaded(object sender, RoutedEventArgs e) {
Window.StateChanged += new EventHandler(Window_StateChanged);
}
void Window_StateChanged(object sender, EventArgs e) {
EnvironmentalVariables.Instance.WindowHeight = Application.Current.MainWindow.Height - EnvironmentalVariables.MENUBARHEIGHT;
EnvironmentalVariables.Instance.WindowWidth = Application.Current.MainWindow.Width - EnvironmentalVariables.TREEWIDTH - 55;
}
Ручное изменение состояния
- Изменения состояния окна
- Window_StateChanged () вызывается
Использование стыковки пользовательского интерфейса Windows
- Window_StateChanged () вызывается
- Изменения состояния окна
Как сделать так, чтобы обработчик событий запускался после стыковки?
Чтобы было понятно, я не использую указанную док-станцию Windows, я использую стыковку операционной системы в Windows 7, когда вы перетаскиваете ее в сторону экрана, и она стыкуется для вас.