WPF-窗口顶部仅用于自己的应用程序?

qjp7pelc  于 2022-11-18  发布在  其他
关注(0)|答案(3)|浏览(117)

我的WPF应用程序中的闪屏/加载窗口被设置为Topmost=“True”。现在,即使您切换到另一个应用程序,此窗口也会位于所有其他窗口的顶部(因为加载将花费一些时间)。我不希望出现这种行为。
如果我设置Topmost=“False”,则窗口根本不在最上面。但是如果您在使用另一个应用程序后切换回我的应用程序,我的客户有时会意识不到加载窗口仍然在工作。应用程序似乎没有响应,因为后台的加载窗口仍然是活动窗口,并且是模态的。
我想把加载窗口放在最上面,但只有当我的应用程序在前台时。如果你切换到另一个程序,窗口应该消失,当你切换回来时重新出现在最上面。

qoefvg9y

qoefvg9y1#

您可以尝试使用窗口的“Owner”属性,这样初始屏幕将始终与其他窗口重叠。

2lpgd968

2lpgd9682#

我想也许改变一下你的主窗口的加载模式会有帮助。如果你能把加载窗口的耗时部分放在后台线程上,那么你可以选择下面的路径:
1.显示MainWindow空的或基本的(空字段/网格等)
1.启动异步加载方法以获取数据并填充主窗口
1.创建闪屏,将所有者设置为自己并显示
1.确保在加载完成时关闭启动屏幕。
在处理装载物时应将飞溅物保持在顶部。

icomxhvb

icomxhvb3#

为了澄清,我将重新回答这个问题:
马丁·莫泽的答案是正确的。
设置所有者属性,如下所示:

secondarywindow.Owner = parent;

AND将TopMost设置为false。

相关问题