首页 > 解决方案 > 如何从其用户控件内部关闭 WPF 中的弹出窗口

问题描述

我已经实现了一个带有类似于此处描述的弹出窗口的切换按钮。我的弹出窗口显示了一个用户控件,它基本上是一个自定义菜单,上面有几个图像/按钮。这是我的切换按钮的代码:

<ToggleButton x:Name="btnMenu" Background="Transparent" HorizontalAlignment="Right">
   <StackPanel>
      <Image Width="60" Height="60" Margin="10,0,10,0" Source="{StaticResource icon-menu}"/>
      <Popup StaysOpen="False" IsOpen="{Binding IsChecked, ElementName=btnMenu}" Placement="Bottom">
         <controls:Menu/>
      </Popup>
   </StackPanel>
</ToggleButton>

一切正常,除了当我单击用户控件中的按钮(绑定到命令)时,我希望弹出窗口消失。有没有办法通过 xaml 在按下用户控件上的按钮时关闭父弹出窗口?

我确实设法在codeproject上找到了最有可能解决问题的解决方案,并且我还在 StackOverflow 上找到了各种解决方案,其中所有 xaml 都在弹出窗口中,而不是单独的用户控件。我想看看是否有另一种首选方法(希望基于 xaml)可以解决这个特定问题,并且仍然让我将菜单保存在单独的用户控件中。

标签: wpfxamlpopup

解决方案


推荐阅读