2 回答
TA贡献1824条经验 获得超5个赞
我做过类似的事情,这对我有用。
SplashScreenWindow splashScreenWindow = null;
Thread newWindowThread = new Thread(() =>
{
splashScreenWindow = new SplashScreenWindow();
splashScreenWindow.Show();
System.Windows.Threading.Dispatcher.Run();
});
newWindowThread.SetApartmentState(ApartmentState.STA);
newWindowThread.IsBackground = true;
newWindowThread.Start();
data loading...
_mainWindow.Show();
您过早地调用关闭,从主窗口 Loaded 事件调用 splashScreenWindow.Close() 。
_mainWindow.Loaded += (s,ev) => {
splashScreenWindow.Dispatcher.Invoke(new Action(.splashScreenWindow.Close));
};
TA贡献1887条经验 获得超5个赞
因为.Show()
不是阻塞调用,这意味着无论窗口实际关闭它都会返回,因此应用程序很可能会运行到最后。
使用.ShowDialog()
.
确保在调用之前关闭启动画面。
- 2 回答
- 0 关注
- 161 浏览
添加回答
举报