【问题标题】:Wiring up back button in NavigationView for UWP app为 UWP 应用程序连接 NavigationView 中的后退按钮
【发布时间】:2019-07-09 21:08:37
【问题描述】:

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

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

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

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

如何使用它来来回导航嵌套页面?

【问题讨论】:

  • 您的问题通过我下面的回复解决了吗?

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


【解决方案1】:

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

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

请参阅Navigation ViewNavigation history and backwards navigation for UWP apps 了解更多信息。

【讨论】:

  • 道歉我没有回复你,我相信这应该完全符合我的需要。谢谢!
  • @Schwagmister 如果它解决了您的问题,请将此帖子标记为答案(目前未标记)。
猜你喜欢
  • 1970-01-01
  • 2021-04-28
  • 1970-01-01
  • 1970-01-01
  • 2020-10-09
  • 1970-01-01
  • 2020-07-19
  • 2016-05-06
  • 2017-12-13
相关资源
最近更新 更多