私のシナリオでは、2 つの異なる方法で表示するために使用したいウィンドウがあります。ウィンドウの状態が通常または最大化されている場合と、ウィンドウが通常または最大化されている場合の 1 つの方法WindowState = WindowState.Normal;
。これら 2 つのウィンドウ モードのサイズと位置を保存したいので、ユーザーには 2 つの別々のウィンドウのように見えます。
これには2つの異なる問題があります。
1) Show() が呼び出された後にウィンドウを初期化すると、低速のマシンではそれほど短いちらつきではない小さなちらつきがあります。これを修正するために、ウィンドウが非表示のときに次のようにセットアップしたかったのです。
((SecondWindowViewModel)this.DataContext).LoadWindowPosition(mode);
this.Show();
私がこれを行うと、さらに最悪の問題が発生します
2) この場合、通常モードのウィンドウ 1 は、ウィンドウ 2 が最大化モードで閉じられた後、ドラッグ時にランダムな高さが設定されます。
ここにあるサンプル アプリケーションを作成しました。正確な問題を確認できます。再現手順も書き留めています。
編集
マキシムの変更を実装し、不要な参照を削除しました