別のソフトウェアのプログラム ファイルの更新を実行し、このソフトウェアを起動する小さなアプリケーションを構築しています。アプリケーションの起動後、スプラッシュ ウィンドウが 2 番目の GUI スレッドに表示され、メイン スレッドでは 2 番目のアプリケーションのメイン ウィンドウが構築されて表示されます。
var shell = (Shell) Shell;
Application.Current.MainWindow = shell;
shell.Show();
2 番目のアプリのシェルが表示された後、最初のウィンドウが閉じられます。2 番目のウィンドウのシェルが* 他のウィンドウの下に表示されることを除けば、すべて正常に動作しています。つまり、エクスプローラーからランチャー アプリを起動すると、ランチャー ウィンドウがエクスプローラー ウィンドウの上に表示されます。ランチャー ウィンドウが閉じ、メイン アプリ ウィンドウがエクスプローラー ウィンドウの下に表示されます。
私はもう試した:
var shell = (Shell) Shell;
Application.Current.MainWindow = shell;
shell.Topmost = true;
shell.Show();
shell.InjectInitialViews();
これでこの問題は解決しますが、タスク バーで別のアプリをクリックしても、シェルの上に他のウィンドウを表示できません。
var shell = (Shell) Shell;
Application.Current.MainWindow = shell;
shell.Topmost = true;
shell.Show();
shell.InjectInitialViews();
shell.Topmost = false;
何もしません...これを達成する適切な方法は何ですか?