我有2页,MainPage和SettingsPage。在MainPage中有一个按钮,当单击它时,它允许使用以下代码进入SettingsPage:
Frame.Navigate(typeof(SettingsPage));
现在我希望在第二页上,当用户点击后退按钮时,应用程序将返回到MainPage。
我尝试添加以下代码:
public SettingsPage()
{
this.InitializeComponent();
SystemNavigationManager.GetForCurrentView().BackRequested += SettingsPage_BackRequested;
}
private void SettingsPage_BackRequested(object sender, BackRequestedEventArgs e)
{
if (this.Frame.CanGoBack)
{
this.Frame.GoBack();
}
e.Handled = true;
}
应用程序返回MainPage但SettingsPage_BackRequested事件继续有效,因此如果单击MainPage上的后退按钮,应用程序不会关闭。
如何在我的应用程序中处理后退按钮?
答案 0 :(得分:1)
我建议您将导航代码移动到App对象。 SystemNavigationManager的好消息是,您可以集中代码并使默认导航过程非常容易。 这是一个简化版
protected override void OnLaunched(LaunchActivatedEventArgs e)
{
...
rootFrame.Navigated += OnNavigated;
SystemNavigationManager.GetForCurrentView().BackRequested += OnBackRequested;
...
}
private void OnNavigated(object sender, NavigationEventArgs e)
{
SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility =
((Frame)sender).CanGoBack ?
AppViewBackButtonVisibility.Visible :
AppViewBackButtonVisibility.Collapsed;
}
private void OnBackRequested(object sender, BackRequestedEventArgs e)
{
Frame rootFrame = Window.Current.Content as Frame;
if (rootFrame.CanGoBack)
{
e.Handled = true;
rootFrame.GoBack();
}
}
有关详细信息,请查看此精彩教程
http://www.wintellect.com/devcenter/jprosise/handling-the-back-button-in-windows-10-uwp-apps