完全隐藏NavigationView窗格

问题描述 投票:0回答:1

是否可以在UWP应用中隐藏NavigationView窗格,但仍在其中显示Frame控件?

一点背景信息:我正在尝试实现一种UI模式,其中用户仅锁定到某些特定的屏幕。用户应该能够以“引导”方式导航,但不能自由导航。禁用或隐藏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>
uwp windows-10 win-universal-app windows-10-universal
1个回答
0
投票

IsPaneVisible属性,您可以确定是否显示窗格。当您要隐藏窗格时,请将IsPaneVisible设置为false。

MainNavView.IsPaneVisible = false;

当您要显示窗格时,如果仍在声明导航视图的页面上,则直接将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();
© www.soinside.com 2019 - 2024. All rights reserved.