私はWPF(MVVM)アプリケーションでモーダルウィンドウを開くのにWindow.ShowDialog()
を使用していますが、Windowsタスクバー(Windows 7)を使用して他のウィンドウにナビゲートできます。他のウィンドウの上にモーダルダイアログが表示されない
これを考慮してください: 私は3つの非モーダルウィンドウを自分のアプリケーションで開いています。今、これらのうちの1つがWindow.ShowDialog()
を使ってモーダルウィンドウを開きます。私はまた、Application.MainWindow
をモーダルウィンドウの所有者に設定しました。これは、私がMVVMメッセージングを使用していて、新しいウィンドウを開くためのメッセージハンドラがApp.xaml.cs
に集中しているためです。ウィンドウはモーダルで開きますが、問題はありません。しかし、Windows 7では、タスクバーから他のアプリケーションウィンドウに切り替えることができます。これは、モーダルウィンドウが別のウィンドウの後ろに来る状況につながります。
私はモーダルを開いている限り、他のウィンドウで何もできませんが、モーダルウィンドウが開いている限り、モーダルウィンドウが常に上に残っているといいでしょう。モーダルが開いているときにタスクバーの切り替えを無効にする方法はありますか? FYI - アプリから起動したすべての開いているウィンドウは、タスクバーに別々のエントリとして表示されます。
ありがとうございます!
モーダルダイアログになるウィンドウを作成する場所からコードを取得できますか? – user7116
あなたが必要としたのは、そのウィンドウが他のすべてのアプリケーションの上にあることでした。私が必要とするのは、ウィンドウがダイアログウィンドウのように、アプリケーションの他のウィンドウの上にあることです。私の要件のために、これら2つの行:Owner = Application.Current.MainWindow; ShowInTaskbar = false;うまくいく。 +1してください。 –