如何使WPF弹出式窗口不被隐藏在主应用程序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使WPF弹出式窗口不被隐藏在主应用程序相关的知识,希望对你有一定的参考价值。
参考技术A <Window x:Class="TestPopupFix.Window1"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="600" Width="800">
<StackPanel>
<Button Content="Open first popup" Click="Button_OpenFirst"/>
<Button Content="Open second popup" Click="Button_OpenSecond"/>
</StackPanel>
</Window>
和背后这在代码:
private void Button_OpenFirst(object sender, RoutedEventArgs e)
Window window = new Window();
TextBlock tb = new TextBlock();
tb.Text = "This is the first window.";
window.Content = tb;
window.Width = 300;
window.Height = 300;
window.Show();
private void Button_OpenSecond(object sender, RoutedEventArgs e)
Window window = new Window();
TextBlock tb = new TextBlock();
tb.Text = "This is the second window.";
window.Content = tb;
window.Width = 300;
window.Height = 300;
window.Show();
如何让 WPF 窗口停留在某个窗口的前面而不是最上面?
【中文标题】如何让 WPF 窗口停留在某个窗口的前面而不是最上面?【英文标题】:How can I let WPF Window stay in front of certain window but not topmost? 【发布时间】:2021-08-25 11:53:32 【问题描述】:情况是这样的
我的 WPF 主窗口始终可见,并且几个小窗口应该浮动在 主窗口上。 所以这些小窗口是主窗口的子窗口,它们的 z-index 应该总是比主窗口大一,即使焦点在主窗口而不是子窗口上,但 z-index 比其他应用程序(例如文件浏览器或 chrome 等)更小。 )
我已经尝试过 Window 的 TopMost 属性,但它确实比其他任何东西都最重要,甚至超过了应用程序的 MessageBox。
让这些子窗口只是浮动在唯一的父窗口前面有什么好主意吗?
提前致谢
【问题讨论】:
听起来您正在寻找Window.Owner
属性。将您的主要Window
设置为子Windows
的Owner
将防止主要Window
显示在子Windows
上方,同时允许其他应用程序显示在后面、中间或在您的应用程序上。
谢谢!我找到了正确的答案。我想我只是错过了在 *** 中搜索答案的正确关键字。当我用“所有者”关键字搜索时,有一些类似的问题,它解决了我的问题。
【参考方案1】:
它应该会在所有者窗口上方自动打开。或者将孩子设置在最上面
【讨论】:
以上是关于如何使WPF弹出式窗口不被隐藏在主应用程序的主要内容,如果未能解决你的问题,请参考以下文章