C# 如何在windows 10通用应用程序开发中使用硬件后退按钮将导航限制到某些页面?
我跟着 我的导航看起来像: 登录->A->B->C。 当我从C按backbutton时 它应该像C->B->A这样导航,而不应该导航到登录页面表单AC# 如何在windows 10通用应用程序开发中使用硬件后退按钮将导航限制到某些页面?,c#,windows,xaml,C#,Windows,Xaml,我跟着 我的导航看起来像: 登录->A->B->C。 当我从C按backbutton时 它应该像C->B->A这样导航,而不应该导航到登录页面表单A SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible; SystemNavigationManager.GetForCurrentView().BackRequeste
SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible;
SystemNavigationManager.GetForCurrentView().BackRequested += Util.Navigation_BackRequested;
public static void Navigation_BackRequested(object sender, BackRequestedEventArgs e)
{
Frame rootFrame = Window.Current.Content as Frame;
if (rootFrame.Equals(typeof(MeetingsList)))
{
Util.debugLog("RESTRICT BACK ");
}
else
{
if (rootFrame.CanGoBack)
{
e.Handled = true;
rootFrame.GoBack();
}
}
SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Collapsed;
}
从登录导航到页面A时,可以调用
rootFrame.RemoveBackEntry()
。这应该RemoveBackEntry()
删除导航堆栈中的最后一个条目。因此,您可以在OnNavigatedTo()
的A页上执行此操作。但是你应该检查你是否来自登录或页面B 默认情况下,“后退”按钮不用于UWP开发。首先,你需要跟进下面的链接,该链接描述了如何启用UWP应用程序开发的后退按钮
然后,您可以使用以下代码提示限制导航
private void App_BackRequested(object sender, Windows.UI.Core.BackRequestedEventArgs e)
{
Frame rootFrame = Window.Current.Content as Frame;
bool status = false;
if(rootFrame == null)
{
return;
}
if (rootFrame.SourcePageType.Name.Equals("POSummary") || rootFrame.SourcePageType.Name.Equals("AutoBinAllocation"))
{
e.Handled = true;
status = true;
}
// Navigate back if possible, and if the event has not
// already been handled .
if (rootFrame.CanGoBack && e.Handled == false && status == false)
{
e.Handled = true;
rootFrame.GoBack();
}
}
是否确实已将红色代码添加到app.xaml.cs文件中?