11

我的 WPF 应用程序中的 Splashscreen/Loading-Window 设置为Topmost="True"。现在,即使您切换到另一个应用程序,这个窗口也位于所有其他窗口的顶部(因为加载需要一些时间)。我不想要这种行为。

如果我设置Topmost="False"窗口根本就不是最上面的。但是,如果您在使用另一个应用程序后切换回我的应用程序,我的客户有时不会意识到 Loading-Windows 仍在工作。该应用程序似乎没有响应,因为后台的加载窗口仍然是活动窗口并且是模态的。

我希望加载窗口位于最顶层,但前提是我的应用程序位于前台。如果您切换到另一个程序,窗口应该会消失并在您切换回来时重新出现在最上面。

4

2 回答 2

10

您可以尝试使用窗口的“所有者”属性,这样启动画面将始终与其他窗口重叠。

于 2010-03-17T15:50:20.223 回答
2

我认为也许改变 MainWindow 的加载模式可能会有所帮助。如果您可以在后台线程上花费时间加载窗口,那么您可以采用以下路径:

  1. 显示 MainWindow 空或裸骨(空字段/网格等)
  2. 启动异步加载方法以获取数据并填充主窗口
  3. 创建启动画面,将所有者设置为自己并显示
  4. 确保加载完成后关闭启动画面。

这应该在处理负载时保持飞溅在顶部。

于 2011-02-10T13:50:02.547 回答