2

ポップアップ コントロールを含むポップアップ ウィンドウがあります。このポップアップが表示されるメイン ウィンドウがあります。ポップアップは、時間がかかるクエリを処理した後にデータを表示します。そのため、ポップアップ内のデータが処理されている間、他のウィンドウを最大化すると、他のウィンドウにもポップアップが表示されます。

私は、PopUpWindow.xaml.cs のポップアップ ウィンドウの MainWindow 所有者を次のように作成しました。

this.Owner = Application.Current.MainWindow;

PopUp Window の「StaysOpen」プロパティを false に設定しましたが、それでも問題は解決しません。他のウィンドウが最大化されている場合に、PopUp が他のウィンドウに表示されないようにする方法。

4

1 に答える 1

2

Deactivatedイベントを使用して、所有者ウィンドウが非アクティブ化されたとき、つまり別のウィンドウがフォーカスを取得して一番上に来たときに、ポップアップを明示的に閉じることができます。

    window.Deactivated += 
        (sender, args) => {
            thePopup.IsOpen = false;
        };

IsOpen 状態をキャプチャして、ウィンドウがアクティブになったときに復元することもできます。

于 2013-08-09T10:52:00.723 に答える