WPF弹出窗口出现在其他桌面窗口之上,如何仅出现在WPF主窗口之上?

2024-04-28

我有一个带有网格的 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;

这也和你的问题类似。

弹出窗口始终位于顶部 https://stackoverflow.com/questions/7606954/popup-always-stays-on-top

他们在这里创建一个自定义弹出窗口使用 user32.dll http://chriscavanagh.wordpress.com/2008/08/13/non-topmost-wpf-popup/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF弹出窗口出现在其他桌面窗口之上,如何仅出现在WPF主窗口之上? 的相关文章

随机推荐