在NavigationView for UWP app中

时间:2019-02-15 17:17:23

标签: c# uwp uwp-xaml uwp-navigation

我在UWP应用程序中正在使用NavigationView,并试图将后退按钮连接起来以进行内容更改。即使设置了导航视图的enable属性,也无法在内容更改期间启用按钮。目前,我只是希望能够从主视图导航到页面,然后再回到主视图。并且还能够更深入地浏览到堆栈中,因此可以使用“主视图”->“新视图”->“新视图”并备份到主视图。

MainPage.xaml / cs

<NavigationView x:Name="MainView_NavigationView"
                    PaneTitle="Git Manager"
                    PaneDisplayMode="LeftCompact"
                    ItemInvoked="MainView_NavigationView_ItemInvoked"
                    Header="Git Manager"
                    BackRequested="MainView_NavigationView_BackRequested">

    <NavigationView.AutoSuggestBox>
        <AutoSuggestBox PlaceholderText="Search"
                            QueryIcon="Find"/>
    </NavigationView.AutoSuggestBox>

    <NavigationView.MenuItems>
        <NavigationViewItemSeparator/>
        <NavigationViewItemHeader Content="Information" />
        <NavigationViewItemSeparator/>

        <NavigationViewItem x:Name="Login_NavViewItem" 
                                Content="Login" 
                                Tag="Clone Repositories" 
                                Icon="AddFriend"/>

        <NavigationViewItem x:Name="Remote_NavViewItem" 
                                Content="Remote" 
                                Icon="World"/>

        <NavigationViewItem x:Name="Local_NavViewItem" 
                                Content="Local" 
                                Icon="Folder"/>

        <NavigationViewItem x:Name="Schedule_NavViewItem" 
                                Content="Schedule" 
                                Icon="Calendar"/>

        <NavigationViewItemSeparator/>
    </NavigationView.MenuItems>

    <NavigationView.Content>
        <Frame x:Name="ContentFrame">
            <Frame.ContentTransitions>
                <TransitionCollection>
                    <NavigationThemeTransition />
                </TransitionCollection>
            </Frame.ContentTransitions>
            <Grid>
                <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" HorizontalTextAlignment="Center" TextAlignment="Center" Text="asdfasdfasdfasdf" />
            </Grid>
        </Frame>
    </NavigationView.Content>
</NavigationView>

-

public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            InitializeComponent();
        }

        private void MainView_NavigationView_ItemInvoked(NavigationView sender, NavigationViewItemInvokedEventArgs args)
        {
            if(args.IsSettingsInvoked)
            {

            }
            else
            {
                NavigationViewItem item = args.InvokedItemContainer as NavigationViewItem;

                switch(item.Content)
                {
                    case "Login":
                        ContentFrame.Navigate(typeof(Views.Login));
                        break;
                    case "Remote":
                        ContentFrame.Navigate(typeof(Views.Remote));
                        break;

                    case "Local":
                        ContentFrame.Navigate(typeof(Views.Local));
                        break;

                    case "Schedule":
                        ContentFrame.Navigate(typeof(Views.Schedule));
                        break;
                }
            }
        }

        private async void MainView_NavigationView_BackRequested(NavigationView sender, NavigationViewBackRequestedEventArgs args)
        {
            var contentBox = new ContentDialog();
            contentBox.Content = "Back clicked";

            await contentBox.ShowAsync();
        }
    }

其他页面只是新的内容页面,上面带有文本块。所以我的两个问题是:

当更改内容时,如何连接后退按钮以使其真正启用并能够单击它,或者如何导航到导航视图内的新页面以启用此按钮/功能。

如何使用它来回浏览嵌套页面?

1 个答案:

答案 0 :(得分:1)

  

当更改内容时,如何连接后退按钮以使其真正启用并能够单击它,或者如何导航到导航视图内的新页面以启用此按钮/功能。

要在NavigationView中启用/禁用BackButton,您需要为其设置IsBackEnabled=True/False属性。然后,您可以使用Frame class CanGoBackCanGoForward属性来使BackButton启用/禁用。

有关更多信息,请参见Navigation ViewNavigation history and backwards navigation for UWP apps