如何从导航历史中删除页面?

3
3个回答

1

一种方法是使用Frame.SetNavigationState。当你在页面A时,将Frame.GetNavigationState存储在可在应用程序的任何地方访问的静态变量中。

MyClass.PageANavigationState = Frame.GetNavigationState();

当您在页面 E(或其他页面)上时,如果您想要清除导航堆栈直到 A,请使用:
Frame.SetNavigationState[MyClass.PageANavigationState];

0

我曾经遇到过同样的问题,我使用以下代码解决了它

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

0
在 UWP 上,Frame.BackStack.Clear() 可以正常工作(因为它是 IList<PageStackEntry>)。此外,您还可以使用其他 IList 方法(如 RemoveAt)来完成您的任务。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接