UWP 中基于 NavigationView 模式隐藏 NavigationViewItemHeader

Hiding the NavigationViewItemHeader based on NavigationView Mode in UWP

我正在为 UWP 使用 NavigationView 组件,该组件随 Windows 10 Fall Creators Update Version 1709(OS build 16299)一起引入。您可以添加一些 header s 到 nav area 文档中写的:

The NavigationView pane can contain:

  • Headers, in the form of NavigationViewItemHeader, for labeling groups of items

我添加了两个 header 这样的:

但是,如果应用程序视图状态已更改且 NavigationView 显示模式设置为 "Compact",我无法隐藏 header。此外,NavigationView 没有 事件,例如 SplitPane 组件中包含的 paneClosed 或 PaneOpened。

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

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;
        }
    }

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

旧的良好可见性绑定怎么样?类似的东西(考虑到 Navigator 是 NavigationView 本身的名称):

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

此外,您可能会发现此讨论很有用: