Windows 10 UWP,后退按钮到前一个框架与汉堡包菜单

本文关键字:一个 框架 菜单 汉堡包 UWP 按钮 Windows | 更新日期: 2023-09-27 18:13:16

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

现在的问题是我手机上的硬件按钮。以前它从这个解决方案中工作得很好:http://devcenter.wintellect.com/jprosise/handling-the-back-button-in-windows-10-uwp-apps

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

我不知道如何处理这个

我在发送我的例子:示例

Windows 10 UWP,后退按钮到前一个框架与汉堡包菜单

基本上,您需要做的是在MyFrame上订阅Navigated事件,而不是在rootFrame上订阅该事件,在root页面上订阅BackRequested事件,而不是试图反向导航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();
    }
}

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

下次请把相关代码贴在你的问题里。这样更容易阅读:)

相关文章: