UWP Скрыть навигатор на странице - PullRequest
0 голосов
/ 18 июня 2020

Я начинаю изучать UWP, и я успешно загружал страницы и перемещался между ними, используя SHELLPAGE в качестве своего МАСТЕРА с NAVIGATIONVIEW в нем. Однако у меня есть случай, когда мне нужно загрузить одну страницу, но мне нужно СКРЫТЬ NAVIGATIONVIEW, когда эта одна страница загружается. Есть идеи?

1 Ответ

0 голосов
/ 18 июня 2020

Если вы хотите скрыть NavigationView на другой странице, вы можете попытаться установить для OpenPaneLength значение 0 и скрыть его backbutton и PaneToggleButton. Когда вы вернетесь, вы можете сбросить OpenPaneLength и отобразить кнопки. Например:

NavigationViewControl.OpenPaneLength = 0;
NavigationViewControl.IsBackButtonVisible = NavigationViewBackButtonVisible.Collapsed;
NavigationViewControl.IsPaneToggleButtonVisible = false;

Или , NavigationView отображался во фрейме ShellPage и содержал фрейм, который использовался для отображения страниц. Если вы хотите отобразить одну страницу и скрыть NavigationView, вы также можете отобразить одну страницу в кадре Root. Например:

.xaml:

<NavigationView x:Name="NavigationViewControl" SelectionChanged="NavigationViewControl_SelectionChanged" >
    <NavigationView.MenuItems>
        <NavigationViewItem Content="Normal Page" Tag="NormalPage" />
        <NavigationViewItemSeparator/>
        <NavigationViewItem Content="Hide Navi Page" Tag="SinglePage" />
    </NavigationView.MenuItems>
    <Frame x:Name="contentFrame"/>
</NavigationView>

.cs:

private void NavigationViewControl_SelectionChanged(NavigationView sender, NavigationViewSelectionChangedEventArgs args)
{
    var selectedItem = (NavigationViewItem)args.SelectedItem;
    if ((string)selectedItem.Tag == "SinglePage")
    {
        this.Frame.Navigate(typeof(SinglePage));
    }
    else
    {
        contentFrame.Navigate(typeof(NormalPage));
    }
}

Здесь - образец, к которому вы можете обратиться.

...