Prism の MefBootstrapper を使用して WPF アプリケーションを初期化しています。このプロセスの一環として、シェル ウィンドウが初期化されています。
MefBootstrapper の Run() メソッドを実行した後、サーバーに接続するログイン ウィンドウを表示しています。接続が成功した場合は、(メイン UI スレッドから) シェルが読み込まれます。
このログイン ウィンドウは、このプロセス (サーバーへの接続、特にシェルの読み込み) でプログレス バーがフリーズしないように、新しい専用の UI スレッドで実行されます。
残念ながら、ログインウィンドウは上部に表示されず、フォーカスされていません(使用しているときでも: Activate(), TopMost=true, Focus() )。
//UI mode - a new UI thread is initialized
var uiThread = new Thread(() =>
{
var loginWindow = new LoginWindow();
loginWindow.Show();
loginWindow.Activate();
loginWindow.Topmost = true;
loginWindow.Topmost = false;
loginWindow.Focus();
System.Windows.Threading.Dispatcher.Run();
});
uiThread.SetApartmentState(ApartmentState.STA);
uiThread.IsBackground = true;
uiThread.Start();
この問題を解決するにはどうすればよいですか?