2016-03-25 4 views
0

私のuwpアプリケーションでハードウェアの戻るボタンを押すと、アプリケーションが終了します。テンプレート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(); 
} 
+0

これに応じて、Shell_BackRequested()にe.Handled = trueを設定する必要があります。 – Gaurav

+0

私はe.handled = trueを追加すると、アプリケーションはannymoreを閉じませんが、戻ってもナビゲートしません –

+0

あなたはそうしてはいけません。 CanGoBackがtrueの場合、e.handled = trueを設定できます。 – Archana

答えて

0

これは、デフォルトの実装のためBackRequestedイベントを処理する方法である。

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

はCanGoBackが真であるためには、あなたが(最初Frame.Navigateを呼び出す必要があることに注意してください)

の場合Frame.BackStackにフレームがある場合、CanGoBackはtrueになります。

関連する問題