硬件返回按钮关闭应用程序

时间:2016-03-25 10:42:39

标签: c# xaml win-universal-app template10

当我在我的uwp应用程序中按下硬件后退按钮时,该应用程序将关闭。我使用Template 10的汉堡包界面。

我在app.xaml.cs和het schell.xaml.cs中添加了以下代码,但是当我按下它时,表示参数canGoBack为false并关闭应用程序。

public Shell(INavigationService navigationService)
{
    Instance = this;
    InitializeComponent();

    // setup for static calls
    Window = WindowWrapper.Current();
    MyHamburgerMenu.NavigationService = navigationService;

    // any nav change, reset to normal
    navigationService.FrameFacade.Navigated += (s, e) =>
        BusyModal.IsModal = LoginModal.IsModal = false;

    SystemNavigationManager.GetForCurrentView().BackRequested += Shell_BackRequested;
}

private void Shell_BackRequested(object sender, BackRequestedEventArgs e)
{
    MyHamburgerMenu.NavigationService.GoBack();
}

1 个答案:

答案 0 :(得分:0)

这是您应该如何处理默认实现的BackRequested事件:

SystemNavigationManager.GetForCurrentView().BackRequested += (sender, e) =>
{
    if (!e.Handled && Frame.CanGoBack)
    {
        e.Handled = true;
        AppFrame.GoBack();
    }
};

请记住,要使CanGoBack成为现实,您应首先调用Frame.Navigate()

如果Frame.BackStack中有帧,则CanGoBack将为真。