2016-09-09 1 views
0

Gibt es eine Möglichkeit, dass ich eine UWP-App durch Drücken der Zurück-Taste "aussetzen" kann. Ich bin mir nicht einmal sicher, ob das Aussetzen der richtige Begriff ist, aber ich möchte die App schließen, wenn der Benutzer die Zurück-Taste drückt, anstatt zur Anmeldungs-/Anmeldeseite in meiner App zurückzukehren. Ich möchte, dass die App geschlossen wird, aber auch angezeigt wird, wenn der Benutzer das zuletzt geöffnete Apps-Menü öffnet, indem er die Zurück-Taste gedrückt hält. Heres mein Code in dem App.xaml.csAussetzen von UWP-Apps mit der Zurück-Taste

private void OnBackRequested(object sender, Windows.UI.Core.BackRequestedEventArgs e) 
     { 
      Frame rootFrame = Window.Current.Content as Frame; 
      if (rootFrame.CurrentSourcePageType == typeof(Pages.Home)) 
      { 
       App.Current.Exit(); 
      } 
      if (rootFrame.CanGoBack) 
      { 
       e.Handled = true; 
       rootFrame.GoBack(); 
      } 
     } 

Das Problem ist mit dem App.Current.Exit(); es beendet die App, wo was ich tun möchte, ist nur zu schließen und nicht auf die MainPage zurück. Wie kann ich das tun?

Antwort

0

Um Ihre App zu verlassen, ohne sie zu beenden, entfernen Sie einfach die App.Current.Exit(); und ignorieren Sie das Ereignis zurück (e.Handled = false;). Sie erhalten dann das Standardverhalten, die App auf mobilen Geräten zu verlassen. Auf dem Desktop bleibt Ihre App auf der Seite, auf der sie sich befindet. Sie müssen dann alles tun, was zu Ihrem Bedürfnis passt, Ihre App im entsprechenden Zustand zu speichern/wiederherzustellen, indem Sie die Ereignishandler für das Aussetzen/Fortsetzen verwenden.

void OnBackRequested(object sender, Windows.UI.Core.BackRequestedEventArgs e) 
{ 
     Frame rootFrame = Window.Current.Content as Frame; 
     if (rootFrame.CurrentSourcePageType == typeof(Pages.Home)) 
     { 
      // ignore the event. We want the default system behavior 
      e.Handled = false; 
     } 
     else if (rootFrame.CanGoBack) 
     { 
      e.Handled = true; 
      rootFrame.GoBack(); 
     } 
} 
+0

Das bin ich zum Login/Anmelden Seite zurück bringt, wo ich die App Akt tun möchte, ist, wie es keine Seiten links und selbst beenden, wenn ich auf der Homepage bin – user3159792

+0

ich die „else“ Klausel vergessen ; Ich habe meine Antwort aktualisiert. Mit Ihrem Code wurde rootFrame.CanGoBack immer ausgewertet und gab immer "true" zurück, da Sie eine Seite im Verlauf haben, sodass immer eine Rückwärtsnavigation durchgeführt wurde. Sie können die Anmeldeseite auch aus dem Verlauf löschen, indem Sie den RootFrame.BackStack löschen. – Vincent

Verwandte Themen