我的WPF应用程序中的Splashscreen / Loading-Window设置为 Topmost="True" . 现在这个窗口在所有其他窗口的顶部,即使你切换到另一个应用程序(因为加载将需要一些时间) . 我不想要这种行为 .
如果我设置 Topmost="False" 窗口根本不在最顶层 . 但是如果您在使用其他应用程序后切换回我的应用程序,我的客户有时也不会意识到Loading-Windows仍在运行 . 该应用程序似乎没有响应,因为后台的加载窗口仍然是活动窗口,它是模态的 .
我希望装载窗口位于最顶层,但前提是我的应用程序位于前台 . 如果切换到另一个程序,窗口应该消失,并在切换回时最重新出现 .
2 回答
您可以尝试使用窗口的“所有者”属性,因为启动屏幕将始终与其他窗口重叠 .
我想也许你的MainWindow加载模式的改变可能会有所帮助 . 如果您可以花时间在后台线程上加载窗口,那么您可以采用以下路径:
显示MainWindow空或裸骨(空字段/网格等)
启动异步加载方法以获取数据并填充主窗口
创建初始屏幕,将所有者设置为自我并显示
确保在加载完成后关闭启动画面 .
这应该在处理负载时保持顶部的飞溅 .