UWP平板电脑模式后退按钮不起作用

时间:2017-02-11 23:05:18

标签: c# windows uwp

我有UWP应用程序,它实现了以下代码来连接系统后退按钮。我的理解是,此事件用于捕获Windows Phone上的硬件后退按钮,Windows 10上标题栏中的后退按钮和Windows 10平板电脑模式下任务栏上的后退按钮。

硬件和标题栏后退按钮在我的应用程序中正常工作,但在平板电脑模式下,按任务栏上的后退按钮可将我的应用程序移至后台并导航至“开始”菜单,无论我在应用程序中的哪个位置堆栈中。 BackRequested事件在这种情况下触发,我的应用程序导航回一页。

protected override async void OnLaunched(LaunchActivatedEventArgs args)
{
  Windows.UI.Core.SystemNavigationManager.GetForCurrentView().BackRequested +=
      App_BackRequested;
}

private void App_BackRequested(object sender, BackRequestedEventArgs e)
{
   NavService.GoBack();
}

关于为什么平板电脑模式后退按钮会以这种方式运行的任何想法?我在许多Windows 10 PC,Surfaces等中都看到过这种行为。

1 个答案:

答案 0 :(得分:2)

Tablet模式后退按钮的默认行为确实是从应用程序导航出来的。为了防止这种情况,您必须确保当可以在应用中导航时,还要将后退导航标记为已处理

private void App_BackRequested(object sender, BackRequestedEventArgs e)
{
   if ( NavService.CanGoBack() )
   {
      NavService.GoBack();       
      e.Handled = true;
   }
}

您必须添加CanGoBack()方法,以检查应用Frame的{​​{1}}媒体资源。