我正在使用 Prism 的 MefBootstrapper 来初始化我的 WPF 应用程序,作为此过程的一部分,正在初始化 Shell 窗口。
运行 MefBootstrapper 的 Run() 方法后,我将显示一个连接到服务器的登录窗口,如果连接成功,则会加载 Shell(从主 UI 线程)。
此登录窗口在一个新的专用 UI 线程上运行,以免在此过程中冻结进度条(连接到服务器,尤其是 Shell 加载)。
不幸的是,登录窗口没有显示在顶部并且没有聚焦(即使我使用的是: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();
我该如何解决这个问题?