WPF-Window仅适用于自己的应用程序?

时间:2010-03-17 14:43:43

标签: c# wpf window topmost

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

如果我将 Topmost =“False”设置为不在最顶层的窗口。但是如果您在使用其他应用程序后切换回我的应用程序,我的客户有时也不会意识到Loading-Windows仍在运行。该应用程序似乎没有响应,因为后台的加载窗口仍然是活动窗口,它是模态的。

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

2 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:2)

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

  1. 显示MainWindow空或裸骨(空字段/网格等)
  2. 启动异步加载方法以获取数据并填充主窗口
  3. 创建初始屏幕,将所有者设置为自己并显示
  4. 确保在加载完成后关闭启动画面。
  5. 在处理负载时应该保持最佳状态。