我将仅在我的应用程序的第一页中可用的菜单更改为汉堡菜单。现在它可以在所有页面中使用。
现在问题在于手机上的硬件按钮。以前,这个解决方案的效果很好: http://devcenter.wintellect.com/jprosise/handling-the-back-button-in-windows-10-uwp-apps
现在我有第一页(root)加载到“frame”(splitview.content)主页面。现在,当我从菜单其他页面(在我的示例“产品”中)按下并按下我的手机上的“后退”按钮时,应用程序正在关闭。我认为因为应用程序不知道是在“框架”页面,但它仍然在根框架上,所以后退按钮正在关闭应用程序
我不知道如何处理这个
我发送我的例子: example
答案 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
的后退导航相关的所有代码,因为在自定义框架中不需要后退导航。
下次,请在您的问题中发布相关代码。它会更容易阅读:)