Windows 10 UWP,带有汉堡菜单的前一帧后退按钮

时间:2016-10-15 15:56:10

标签: c# xml uwp

我将仅在我的应用程序的第一页中可用的菜单更改为汉堡菜单。现在它可以在所有页面中使用。

现在问题在于手机上的硬件按钮。以前,这个解决方案的效果很好: http://devcenter.wintellect.com/jprosise/handling-the-back-button-in-windows-10-uwp-apps

现在我有第一页(root)加载到“frame”(splitview.content)主页面。现在,当我从菜单其他页面(在我的示例“产品”中)按下并按下我的手机上的“后退”按钮时,应用程序正在关闭。我认为因为应用程序不知道是在“框架”页面,但它仍然在根框架上,所以后退按钮正在关闭应用程序

我不知道如何处理这个

我发送我的例子: example

1 个答案:

答案 0 :(得分:4)

基本上,您需要做的是订阅Navigated上的MyFrame活动,而不是在rootFrame订阅该活动,订阅您的BackRequested活动root页面,而不是尝试反向导航rootFrame,反向导航MyFrame。因此,root页面中的代码可能如下所示:

XAML:

<Frame Name="MyFrame" Navigated="MyFrame_Navigated"/>

C#:

public root()
{
    SystemNavigationManager.GetForCurrentView().BackRequested += OnBackRequested;
}

private void MyFrame_Navigated(object sender, NavigationEventArgs e)
{
    SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility =
            MyFrame.CanGoBack ?
            AppViewBackButtonVisibility.Visible :
            AppViewBackButtonVisibility.Collapsed;
}

private void OnBackRequested(object sender, BackRequestedEventArgs e)
{
    if (MyFrame.CanGoBack)
    {
        e.Handled = true;
        MyFrame.GoBack();
    }
}

您还应该删除rootFrame中与App.xaml.cs的后退导航相关的所有代码,因为在自定义框架中不需要后退导航。

下次,请在您的问题中发布相关代码。它会更容易阅读:)