所有窗口前面的内容控制

本文关键字:内容控制 前面 窗口 | 更新日期: 2023-09-27 18:34:43

在我们的WPF应用程序中,我们有一个主窗口和一堆按钮,用于打开弹出的编辑/只读窗口。在主窗口中,我们还有一个内容控件,可在右下角提供通知。

我想要实现的是让这些通知在所有窗口的最前面弹出。我知道我可以使用Panel.ZIndex使其成为(主(窗口本身内的前视图元素,但我也希望它位于可能位于其前面的弹出窗口的顶部。

有没有办法实现这一目标?我知道我可以把这个带有通知的 ContentControl 放在一个单独的窗口中,而不是 MainWindow 本身,但后来我不得不删除窗口的边框和栏,从底部的 Windows 任务栏中删除它以及一堆其他东西,让它看起来/行为与现在相同, 我最好避免。

那么,解决此问题的最佳方法是什么,是否可以不将其放在单独的窗口中,并在每次出现新通知时将其弹出到其他窗口的前面?

所有窗口前面的内容控制

不幸的是,您没有选择,因为使您的ContentControl出现在其他Window之上的唯一方法是将其放入自己的Window中并将其TopMost属性设置为 true 。实际上,Panel.ZIndex只会影响MainWindow控件的 Z 指数......不能将其设置为显示在父Window的级别之上。

简而言之,您的解决方案是将ContentControl添加到自定义Window中,并将其显示在顶部。