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

时间:2013-01-28 12:18:03

标签: 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>

1 个答案:

答案 0 :(得分:4)

您已在弹出窗口中设置了所有者属性。 在弹出窗口中,

this.owner = instanceOfParentWindow;

这也与您的问题类似。

Popup always stays on top

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

相关问题