WPF 弹出窗口出现在其他桌面窗口上,如何只出现在 WPF 主窗口的顶部?

标签 wpf popup

我有一个带有网格的 WPF 主窗口,并且我添加了一个 WPF 弹出窗口,以在单击按钮时向用户询问额外信息。但问题是,当其他桌面窗口移到弹出窗口上时,弹出窗口会覆盖其他桌面窗口。如何解决此问题,以便弹出窗口仅位于 WPF 主窗口的最顶部,而不是其他桌面窗口。当设置为始终位于顶部时,弹出窗口的行为就像任务管理器!

如果您使用下面的代码,您将看到弹出窗口保持在顶部。因此,将任何其他桌面窗口移到弹出窗口上方,弹出窗口将覆盖其他桌面应用程序!请注意,我不想使用 StaysOpen="False"。

<Grid>
    <Popup Name="myPopup" Placement="Center" IsOpen="True">
        <StackPanel Background="Green" >
            <TextBox Width="200" Margin="0,0,10,0"/>
            <Button Name="closePopupBtn" Content="close" Width="100" />
        </StackPanel>
    </Popup>
</Grid>

最佳答案

您已在弹出窗口中设置 Owner 属性。
在您的弹出窗口中,

this.owner = instanceOfParentWindow;

这也与您的问题相似。

Popup always stays on top

他们在这里创建了一个自定义弹出窗口
using user32.dll

关于WPF 弹出窗口出现在其他桌面窗口上,如何只出现在 WPF 主窗口的顶部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14561891/

相关文章:

javascript - 单击标记时不显示 react 传单弹出窗口

html - 如何使用css3制作弹出图像?

c# - 如何创建随音频变化的显示

c# - 在带有 Entity Framework 的 ViewModel 上使用 DependencyProperty

c# - 具有 HierarchicalDataTemplate 和包含子项的 ObservableCollection 的 WPF TreeView

c# - WPF 文本字符 'g' 、 'q' 和其他字符在 TabItem 中被截断

c# - 如何通过同一 View 模型的属性传递事件

c# - Response.BinaryWrite() 在模态弹出窗口中不起作用

php - 如果您的弹出窗口被阻止,如何获得通知?(HTML JS PHP)

javascript - 防止阻止使用 Facebook SDK 出现的弹出窗口