Ich folgte diesem Link http://www.wintellect.com/devcenter/jprosise/handling-the-back-button-in-windows-10-uwp-apps und "erfolgreich" meinen Knopf arbeiten. Ich meine, ich kann meinen Backbutton arbeiten zwischen Seiten. Wenn ich jedoch zu einem Steuerelement innerhalb dieser Seite navigiere und den gesamten Bildschirm betrachte, würde es mir nicht erlauben, auf die Seite zurückzukehren. Ich werde in dieser Kontrolle stecken bleiben. Ich frage mich, wie ich dieses Problem lösen kann. Zur Zeit kann ich zwei mögliche Wege finden (0) OnBackRequested() im Code hinter oder viewmodel des Controls überschreiben? (1) Überschreiben Sie OnHardwareButtonsBackPressed() im Code hinter oder viewmodel? Des Steuerelements. Ich weiß nicht, ob dies der richtige Weg ist, oder es gibt einen besseren Weg, es zu tun. Ein weiterer Grund für das Überschreiben ist, dass ich einige Änderungen am Seitennavigationsverhalten vornehmen muss.Wie backbutton Arbeit für ein Steuerelement, nicht nur Seite in UWP arbeiten?
Antwort
Wie Sie bereits erraten haben, müssen Sie das Steuerelement einfach nur ausblenden, wenn die Zurück-Taste gedrückt oder auf andere Weise zurückgefordert wird. Ich würde für das Ereignis BackRequested
(nicht das Ereignis HardwareButtons.BackPressed
) in der Code-Behind der Seite hören, und in der Behandlungsmethode können Sie überprüfen, ob das Steuerelement derzeit angezeigt wird. Der Grund, warum ich das BackRequested
Ereignis empfehle, ist, weil es universell ist, während HardwareButtons.BackPressed
nur auf einem Telefon funktioniert. Wenn das Steuerelement sichtbar ist, blenden Sie es aus und setzen Sie die Eigenschaft Handled
der Ereignisargumente auf true
. Wenn das Steuerelement bereits ausgeblendet ist, sollten Sie keine besonderen Maßnahmen ergreifen, um das Ereignis zu behandeln (denn in diesem Fall möchten Sie, dass das Navigationssystem das Ereignis behandelt, indem es zur vorherigen Seite navigiert, falls vorhanden). Es gibt viele Aspekte der Navigation in Windows 10 - bitte sehen Sie diese Seiten unter Navigation und the SystemNavigationManager.
- 1. UWP - So erstellen Sie ein TokenAutoComplete-Steuerelement
- 2. Wie ein Link Arbeit nur machen, wenn ein Benutzer in
- 3. BackButton von NavigationController erscheint nicht
- 4. PHP umfassen nicht für Index-Seite arbeiten
- 5. wie Backbutton Farbe iOS7
- 6. Seite in UWP SplitView Steuerelement hat eine Grenze für seine Breite
- 7. Uwp Navigationsbeispiel und Fokussierung auf Steuerelement
- 8. Implementieren responsiven Master/Detail in UWP mit nur einer Seite
- 9. "Backbutton" Ereignis wird nicht ausgelöst
- 10. [UWP] Verwenden von Frame-Steuerelement in PivotItem
- 11. UWP Bilder nicht sofort auf Seite
- 12. Wie ID für ein benutzerdefiniertes Steuerelement abzurufen
- 13. Wie benutzerdefinierte Panel in der Seite XAML für UWP hinzufügen?
- 14. Wie zeigen Sie Sekunden in Windows 10 UWP TimePicker-Steuerelement?
- 15. Backdrop-Steuerelement in Windows 10 UWP nicht verwischen
- 16. Wie behandelt HardwareButtons.BackPressed in UWP?
- 17. Ein ActiveX-Steuerelement auf dieser Seite möglicherweise nicht sicher
- 18. numpy Pandas arbeiten nicht in IDLE/Arbeit in Anaconda
- 19. Müssen Sie FindControl nur für ein verschachteltes Steuerelement verwenden, wenn das Steuerelement in INamingContainer implementiert?
- 20. Bilder von Assets Ordner arbeiten nicht in UWP App
- 21. Bindung von MVVM-Befehl an TimePicker-Steuerelement in UWP
- 22. (Windows 10 UWP) Wie binden Header-Eigenschaft in PivotItem-Steuerelement in benutzerdefinierte HeaderTemplate in Pivot-Steuerelement?
- 23. UWP Xaml-Steuerelement für zweispaltigen Text + Editor mit benutzerdefiniertem Editor
- 24. php date.timezone nicht richtig für die Kommandozeilen-Skript arbeiten nur
- 25. Probleme beim Abrufen von seitenspezifischem CSS für die Arbeit an nur einer angegebenen Seite in Rails
- 26. Wie machen die Seite UWP generic
- 27. Seitenlebenszyklus für ein Steuerelement verhindern
- 28. Windows 10 UWP-Targeting-Fenster 10 nur für Mobilgeräte
- 29. Update UI UWP Seite Anwendung
- 30. Anzahl der angeklickten Seite in DataPager Steuerelement
Ich habe ein paar Probleme mit SystemNavigationManager gefunden. Sein Geltungsbereich ist global, was bedeutet, dass, egal in welchem Steuerelement, nach Drücken der Zurück-Taste, jeder BackPressed ausgelöst wird. Ich habe versucht, das Steuerelement zu verstecken, für einige wird es funktionieren, einige funktionieren einfach nicht. Und für diejenigen, die arbeiten, ist es etwas schwierig, sie wieder sichtbar zu machen. – litaoshen
Sie könnten versuchen, den BackRequested-Ereignishandler im CodeBehind- oder ViewModel einzurichten, anstatt in App.xaml.cs wie der von Ihnen referenzierte Artikel. Auf diese Weise können Sie die Zurück-Schaltfläche pro Seite statt global problemlos verarbeiten. Als Randnotiz würde ich empfehlen, [Template 10] (https://github.com/Windows-XAML/Template10) auszuprobieren, das ein robustes Navigationsmodell mit einem benutzerdefinierten BackRequested-Ereignis (BootStrapper.BackRequested) hat. Auf diese Weise können Sie zu vorherigen Seiten navigieren oder einen Dialog ohne große Schwierigkeiten schließen. –