如何从导航历史记录中删除页面
本文关键字:删除 记录 历史 导航 | 更新日期: 2023-09-27 18:20:41
如何从导航历史记录中删除页面?
我是这样前进的:
this.Frame.Navigate(typeof(...));
但我想要的是
A->B->C->D->E
回来了?
E->
所以我想删除向后导航堆栈。据我所知,NavigationService在Windows8中不可用。我在页面类中找不到任何有用的函数:
http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.page
一种方法是使用Frame.SetNavigationState。当您在页面A
上时,将Frame.GetNavigationState存储在应用程序中任何位置都可以访问的静态变量中。
MyClass.PageANavigationState = Frame.GetNavigationState();
当您在E
(或任何页面)上,并且希望清除导航堆栈直到A
时,请使用
Frame.SetNavigationState[MyClass.PageANavigationState];
我遇到了同样的问题,我使用以下代码完成了这项工作
while (Frame.BackStackDepth > 0)
{
if (Frame.CanGoBack)
{
Frame.GoBack();
}
}
Frame.CacheSize = 0;
Frame.Navigate(typeof(LoginScreen));
在UWP上,Frame.BackStack.Clear()
运行良好(因为它是IList<PageStackEntry>
)。
此外,您可以使用其他IList
方法(如RemoveAt
)来完成您的任务。