【发布时间】:2018-08-09 07:44:49
【问题描述】:
我有一个 WPF 应用程序需要一点时间才能启动,我有一个 SplashScreen,它告诉用户稍等片刻,直到应用程序完全加载。到目前为止一切顺利。
问题是用户(像往常一样),如果他开始绝望地点击 SplashScreen 中的任何地方,他会收到典型的 Windows™ 消息“此程序没有响应”,在此消息框中他可以选择关闭程序,这将关闭另一个我在其中进行所有加载的过程,但不是 WPF 应用程序。然后 WPF 应用程序启动,但您无法对其执行任何操作。如果用户单击几次,则不会发生此行为。
所以我的问题是,是否可以阻止来自 Windows™ 的此消息,或者阻止用户与 SplashScreen 的交互?
提前感谢您的建议。
【问题讨论】:
-
最终,您的用户会选择 "close" 一次或两次,然后意识到他们不应该这样做。或者你可以在你的启动画面上显示“请不要拼命点击这个启动画面”
-
我猜你正在 UI 线程上进行“加载”,这会阻止 UI 交互。发生这种情况时,当您多次单击它时,它会显示“未响应”。在不同的线程上更改加载部分,或使用异步。
-
这是有道理的@LupuSilviu,问题是,这个加载的东西在 App.xaml.cs 中,如果我启动另一个线程进行加载,UI 将会出现并且也不会起作用
-
那么,您想在不显示窗口的情况下进行加载吗?如果您删除 StartupUri 路径,并使用 window.Show() 从代码中显示窗口,则可以这样做。如果您需要模式帮助,您需要发布一些代码。
-
显示斜线窗口,在背景上初始化数据,然后显示主窗口。