我有一个有网格的WPF主窗口,我已经添加了一个WPF弹出窗口,当一个按钮被点击时,它会要求用户提供额外的信息。但问题是,当其他桌面窗口移动到弹出窗口上时,弹出窗口会覆盖其他桌面窗口。如何修复此问题,使弹出窗口仅显示在WPF主窗口的顶部,而不是其他桌面窗口。当设置为always on top时,弹出窗口的行为就像任务管理器一样!
如果您使用下面的代码,您将看到弹出窗口位于顶部。因此,将任何其他桌面窗口移动到弹出窗口上,弹出窗口将覆盖其他桌面应用程序!注意,我不想使用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>发布于 2013-01-28 21:39:40
已在弹出窗口中设置了Owner属性。在弹出窗口中,
this.owner = instanceOfParentWindow;这也与你的问题类似。
他们在这里创建了一个自定义的弹出式using user32.dll
发布于 2021-08-20 08:25:29
我知道这是一个古老的问题,我通过搜索如何解决同样的问题来解决这个问题。
最简单的方法是用工具提示控件替换弹出窗口。工具提示共享相同的基本功能,但它不像popup那样作为单独的层,因此工具提示不会出现在其他应用程序的顶部。
(Popup不是WPF定义的控件,它是一个不打算按原样使用的组件)。
https://stackoverflow.com/questions/14561891
复制相似问题