在UWP中基于NavigationView模式隐藏NavigationViewItemHeader

时间:2018-02-03 18:25:48

标签: uwp windows-10 win-universal-app windows-10-universal uwp-xaml

我在Windows 10 Fall Creators更新版本1709(操作系统版本16299)中使用了NavigationView组件用于UWP。您可以在文档中添加一些标题到导航区域:

  

NavigationView窗格可以包含:

     
      
  • 标题,以NavigationViewItemHeader的形式,用于标记项目组
  •   

我添加了两个标题:

enter image description here

但是,如果更改了应用视图状态并且NavigationView显示模式已确定为" Compact",则无法隐藏标题。此外,NavigationView 还没有事件,例如包含在SplitPane组件中的paneClosed或PaneOpened。

enter image description here

我尝试了这个代码块,但它不是完整的解决方案:

private void Navigator_DisplayModeChanged(NavigationView sender, NavigationViewDisplayModeChangedEventArgs args)
    {

        if (args.DisplayMode == NavigationViewDisplayMode.Compact && Navigator.IsPaneOpen)
        {
            Other.Visibility = Visibility.Collapsed;
            Main_Operations.Visibility = Visibility.Collapsed;
        }

        else
        {
            Other.Visibility = Visibility.Visible;
            Main_Operations.Visibility = Visibility.Visible;
        }
    }

如果您能就此事提出解决方案,我很高兴。谢谢。

1 个答案:

答案 0 :(得分:4)

旧的良好可见性绑定怎么样?类似的东西(鉴于导航器是NavigationView本身的名称):

<NavigationViewItemHeader Content="Header here" Visibility="{Binding ElementName=Navigator,Path=IsPaneOpen}"/>

此外,您可能会发现此讨论很有用:UWP - Prevent NavigationViewItemHeader from being clipped