完全隐藏 NavigationView 窗格
Hide NavigationView pane completely
有没有办法在 UWP 应用程序中隐藏 NavigationView 窗格,但仍显示其中的 Frame 控件?
一些背景信息:我正在尝试实现一种 UI 模式,在该模式下,用户仅被锁定到某些特定屏幕。用户应该能够以 "guided" 的方式导航,但不能自由导航。禁用或隐藏 NavigationItems 是不够的,因为它可能会造成混淆。用户应该完全清楚,如果他想再次自由导航,他必须离开应用程序的这种锁定状态。
我正在使用 WinUI 库中的 NavigationView。
这是我的 NavigationView XAML 代码的简化片段:
<Grid>
<muxc:NavigationView x:Name="MainNavView"
IsTabStop="False"
ItemInvoked="OnNavigationViewItemInvoked"
AlwaysShowHeader="False"
PaneDisplayMode="LeftCompact"
IsBackButtonVisible="Auto"
BackRequested="MainNavView_BackRequested">
<muxc:NavigationView.AutoSuggestBox>
...
</muxc:NavigationView.AutoSuggestBox>
<muxc:NavigationView.MenuItems>
...
</muxc:NavigationView.MenuItems>
<muxc:NavigationView.PaneFooter>
...
</muxc:NavigationView.PaneFooter>
<Frame x:Name="RootFrame"
Navigated="RootFrame_Navigated" />
</muxc:NavigationView>
</Grid>
有一个IsPaneVisible 属性可以判断窗格是否显示。当您想隐藏窗格时,将 IsPaneVisible 设置为 false。
MainNavView.IsPaneVisible = false;
当你想显示窗格时,如果你还在声明navigationView的页面,直接将IsPaneVisible设置为true。
MainNavView.IsPaneVisible = true;
或者如果你在另一个页面,你可以声明一个静态的MainPage实例,然后调用show方法。
MainPage.cs:
public static MainPage Current;
public void showPane()
{
MainNavView.IsPaneVisible = true;
}
public MainPage()
{
this.InitializeComponent();
Current = this;
}
AnotherPage.cs:
MainPage.Current.hidePanel();
有没有办法在 UWP 应用程序中隐藏 NavigationView 窗格,但仍显示其中的 Frame 控件?
一些背景信息:我正在尝试实现一种 UI 模式,在该模式下,用户仅被锁定到某些特定屏幕。用户应该能够以 "guided" 的方式导航,但不能自由导航。禁用或隐藏 NavigationItems 是不够的,因为它可能会造成混淆。用户应该完全清楚,如果他想再次自由导航,他必须离开应用程序的这种锁定状态。
我正在使用 WinUI 库中的 NavigationView。
这是我的 NavigationView XAML 代码的简化片段:
<Grid>
<muxc:NavigationView x:Name="MainNavView"
IsTabStop="False"
ItemInvoked="OnNavigationViewItemInvoked"
AlwaysShowHeader="False"
PaneDisplayMode="LeftCompact"
IsBackButtonVisible="Auto"
BackRequested="MainNavView_BackRequested">
<muxc:NavigationView.AutoSuggestBox>
...
</muxc:NavigationView.AutoSuggestBox>
<muxc:NavigationView.MenuItems>
...
</muxc:NavigationView.MenuItems>
<muxc:NavigationView.PaneFooter>
...
</muxc:NavigationView.PaneFooter>
<Frame x:Name="RootFrame"
Navigated="RootFrame_Navigated" />
</muxc:NavigationView>
</Grid>
有一个IsPaneVisible 属性可以判断窗格是否显示。当您想隐藏窗格时,将 IsPaneVisible 设置为 false。
MainNavView.IsPaneVisible = false;
当你想显示窗格时,如果你还在声明navigationView的页面,直接将IsPaneVisible设置为true。
MainNavView.IsPaneVisible = true;
或者如果你在另一个页面,你可以声明一个静态的MainPage实例,然后调用show方法。
MainPage.cs:
public static MainPage Current;
public void showPane()
{
MainNavView.IsPaneVisible = true;
}
public MainPage()
{
this.InitializeComponent();
Current = this;
}
AnotherPage.cs:
MainPage.Current.hidePanel();