3 Stimmen

Wie entfernt man eine Seite aus dem Navigationsverlauf?

Wie entferne ich eine Seite aus dem Navigationsverlauf?

Ich gehe so vorwärts:

this.Frame.Navigate(typeof(...));

Aber was ich will ist

A -> B -> C -> D -> E

Zurück?

E -> A

Also möchte ich den Rückwärts-Navigationsverlauf löschen. NavigationService ist meines Wissens nach in Windows 8 nicht verfügbar. Und ich finde keine nützliche Funktion in der Page-Klasse:

http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.page

1voto

keyboardP Punkte 67673

Ein Weg ist die Verwendung von Frame.SetNavigationState. Wenn Sie auf Seite A sind, speichern Sie Frame.GetNavigationState in einer statischen Variable, die überall in der App zugänglich ist.

MyClass.PageANavigationState = Frame.GetNavigationState();

Wenn Sie auf Seite E (oder einer anderen Seite) sind und den Navigationsstapel bis zu A löschen möchten, verwenden Sie

Frame.SetNavigationState[MyClass.PageANavigationState];

0voto

Inder Kumar Rathore Punkte 38280

Ich hatte dasselbe Problem und habe dies mit dem unten stehenden Code gemacht

while (Frame.BackStackDepth > 0)
{
    if (Frame.CanGoBack)
    {
        Frame.GoBack();
    }
}
Frame.CacheSize = 0;
Frame.Navigate(typeof(LoginScreen));

0voto

Auf UWP funktioniert Frame.BackStack.Clear() einwandfrei (da es sich um IList handelt).

Sie können auch andere IList-Methoden verwenden (z. B. RemoveAt), um Ihre Aufgabe zu erledigen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X