我的WPF应用程序中有一个Flyoout弹出窗口和测试窗口。我需要的是,当我点击Flyout外面时,我需要关闭窗口。我将Panel.Zindex设置为可见顶部。我试过一个工作正常的代码。但它不知道我是在Flyout内部还是在弹出窗口外面点击。当我点击主屏幕时它关闭。!
这是我的xaml代码:
xmlns:metro="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
<metro:Flyout x:Name="flyOutControl" IsOpen="False" Background="#5D7BA5" Foreground="White"
Grid.Row="0" Grid.RowSpan="4" Grid.Column="0" Grid.ColumnSpan="2" Panel.ZIndex="50"
Width="400" Height="auto">
<TreeView x:Name="treeviewBreadcrumb" Width="350"
HorizontalAlignment="Left" FontSize="20"
Background="Transparent" Foreground="White"
VerticalAlignment="Top">
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="True"/>
<Setter Property="Margin" Value="5"/>
<Setter Property="Foreground" Value="White"/>
</Style>
</TreeView.ItemContainerStyle>
</TreeView>
</metro:Flyout>
如果我在测试窗口屏幕中,我可以将这个Flyout的Isopen属性设置为true。 如果我在任何其他窗口外面点击,我怎么能关闭它呢?
任何帮助都会非常适合..提前致谢..
答案 0 :(得分:3)
在弹出按钮上将isPinned属性设置为false,如下所示:
<metro:Flyout IsPinned="False"></metro:Flyout>