如何添加事件处理程序以在窗口停靠到屏幕时捕获



我有一个方法,当 WindowState 使用 Window.StateChange 更改时,该方法会接收窗口的高度和宽度,但是当我使用 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 UI Docking

  • Window_StateChanged() 调用
  • 窗口状态更改

如何使事件处理程序在停靠发生运行?

为了清楚起见,

我没有使用引用的Windows扩展坞,而是使用Windows 7中的操作系统停靠,您可以在其中拖动到屏幕的一侧,它会为您停靠。

你试过实际高度\实际宽度吗?

编辑:(将答案移至此处)在"状态更改"之后调用"SizeChanged"事件,然后大小应该没问题您可以在那里更新大小

相关内容

  • 没有找到相关文章

最新更新