0

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 UI ドッキングの使用

  • Window_StateChanged() が呼び出されました
  • ウィンドウ状態の変更

ドッキングが発生した後にイベント ハンドラーが実行されるようにするにはどうすればよいですか?

明確にするために、参照されている Windows ドッキングを使用していません。Windows 7 のオペレーティング システム ドッキングを使用しており、画面の端にドラッグするとドッキングします。

4

1 に答える 1

1

ActualHeight\ActualWidth を試しましたか?

編集:(ここに回答を移動)「SizeChanged」イベントは「StateChanged」の後に呼び出され、サイズは問題ないはずです。そこでサイズを更新できます

于 2012-08-14T12:30:54.017 に答える