代码之家  ›  专栏  ›  技术社区  ›  berkb

在UWP中基于NavigationView模式隐藏NavigationViewItemHeader

  •  1
  • berkb  · 技术社区  · 7 年前

    我正在使用 NavigationView 随Windows 10 Fall Creators推出的UWP组件更新版本1709(OS build 16299)。您可以向导航区域添加一些标题,如文档中所述:

    NavigationView窗格可以包含:

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

    我添加了两个标题,如下所示:

    enter image description here

    但是,如果应用程序视图状态更改并且NavigationView显示模式设置为“Compact”,则无法隐藏标题。此外,NavigationView 没有 SplitPane组件中包含的paneClosed或PaneOpen等事件。

    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 回复  |  直到 7 年前
        1
  •  5
  •   Yury Schkatula    7 年前

    旧的高可见性绑定怎么样?诸如此类(假定Navigator是NavigationView本身的名称):

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

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