Windows 8如何在一个框架中管理一堆页面?
如何以编程方式清除整个堆栈,因为我需要“弹出”堆栈中的所有页面并返回到我开始的第一页(让我们说登录页面)?
答案 0 :(得分:3)
在this article中(必读的导航内容):
private void ResetPageCache()
{
var cacheSize = ((Frame) Parent).CacheSize;
((Frame) Parent).CacheSize = 0;
((Frame) Parent).CacheSize = cacheSize;
}
答案 1 :(得分:3)
在Common / LayoutAwarePage.cs中有以下GoHome()函数(除了与标准Back按钮上的Click-event一起使用的GoBack()函数):
// Use the navigation frame to return to the topmost page
if (this.Frame != null)
{
while (this.Frame.CanGoBack) this.Frame.GoBack();
}
答案 2 :(得分:0)
尝试实现自己的Frame类,类似于:
然后你可以编写一个基本上执行此操作的RemoveLastEntry方法:
void RemoveLastEntry()
{
if (_navigationStack.Count > 0)
{
_navigationStack.Pop();
}
}
并将此方法调用一定次数。
或者你可以调用GoHome方法,它将你带回第一个屏幕(除了第一个项目之外,它将清除整个堆栈)。
我希望这会带你走向正确的方向!
答案 3 :(得分:0)
最佳解决方案是
while (this.Frame.CanGoBack)
{
this.Frame.GoBack();
}