如何只在某个页面上处理后退按钮?

时间:2016-09-21 09:04:56

标签: c# uwp

简而言之,我只想在某个页面上处理后退按钮以返回上一页,但在其余页面上忽略(让默认操作/关闭应用程序)。

因此,对于我的示例,我只想处理CurrentPage的后退按钮。所以,我将此代码放在我的CurrentPage.xaml.cs

public CurrentPage()
{
   this.InitializeComponent();
   SystemNavigationManager.GetForCurrentView().BackRequested += App_BackRequested;
}

private void App_BackRequested(object sender, BackRequestedEventArgs e)
{
   this.Frame.Navigate(typeof(PreviousPage), e);
   e.Handled = true;
}

但是,当我进入PreviousPage时,按Back Button将再次转到PreviousPage。我无法退出应用程序。

如果我在PreviousPage.xaml.cs上添加它,那么从CurrentPage按BackButton将返回PreviousPage并自动关闭应用程序。

public PreviousPage()
{
   this.InitializeComponent();
   SystemNavigationManager.GetForCurrentView().BackRequested += App_BackRequested;
}

private void App_BackRequested(object sender, BackRequestedEventArgs e)
{
   Application.Current.Exit();
   e.Handled = true;
}

您是否知道如何在单页上处理后退按钮?

1 个答案:

答案 0 :(得分:0)

当您离开CurrentPage时,您还应该删除后退的事件处理程序SystemNavigationManager.GetForCurrentView().BackRequested -= App_BackRequested;。如果没有这个,即使您已经离开页面,代码也会被调用。