我有一个方法可以在 WindowState 随 Window.StateChanged 更改时获取窗口的高度和宽度,但是当我使用 MS Windows 停靠来停靠 Window 时,应用程序检测到更改,运行事件处理程序,然后停靠并给了我错误的窗口高度/宽度。
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 UI 对接
- Window_StateChanged() 调用
- 窗口状态更改
如何使事件处理程序在对接发生后运行?
为了清楚起见,我没有使用引用的 Windows 对接,我使用的是 Windows 7 中的操作系统对接,您可以将其拖到屏幕的一侧并为您对接。