点击按钮后,我需要返回特定页面。更像是自定义后退按钮。
如果我知道页面是什么,我可以去确切的页面,
private void button_click(object sender, RoutedEventArgs e)
{
Frame.Navigate(typeof(Page1));
}
此外,我可以通过
返回上一页if(this.Frame.CanGoBack)
{
Frame.GoBack();
}
但是如何立即跳到上一页之前的页面?
是否有任何网页历史记录?
答案 0 :(得分:1)
您可以使用NavigationServices.BackStack
访问之前页面的历史记录。
但是你没有具体的方法可以一次从2页回来。但是,如果您要跳到上一页之前的页面,则只需拨打NavigationServices.GoBack()
两次。
此外,如果您要返回特定页面,您可以知道它在backstack之间的索引,并使用GoBack
方法进行循环。
答案 1 :(得分:1)
您可以将BackStack中的所有页面作为列表获取:
var lstAllStackPages = this.Frame.BackStack.ToList();
并制作一个for循环来获取您的特定页面并导航到它。
答案 2 :(得分:1)
谢谢你@CoderDennis,我想通了。希望它能帮助别人。 如果我进入主页面,我想回到主页面
foreach (PageStackEntry stack in Frame.BackStack)
{
//check if stack contains history of the main page. (Solution name: Helloworld)
if (stack.SourcePageType == typeof(HelloWorld.MainPage))
{
Frame.Navigate(stack.SourcePageType);
break;
}
}