Windows Phone 后退按钮

Windows Phone back button

我需要在单击按钮时返回到特定页面。更像是自定义后退按钮。

我可以转到确切的页面,如果我知道页面是什么,

private void button_click(object sender, RoutedEventArgs e)
{
    Frame.Navigate(typeof(Page1));
}

我也可以通过

返回上一页
if(this.Frame.CanGoBack)
{
    Frame.GoBack();
}

但是怎样才能一下子跳到上一页的前一页呢?

有页面历史记录吗?

您可以使用 NavigationServices.BackStack 访问您之前页面的历史记录。

但是您没有具体的方法可以一次从 2 个页面返回。但是,如果您要跳转到上一页之前的页面,您只需调用 NavigationServices.GoBack() 两次。

此外,如果你要回到一个特定的页面,你可以知道它在backstack之间的索引,并用GoBack方法循环。

您可以从 BackStack 获取所有页面作为列表:

var lstAllStackPages = this.Frame.BackStack.ToList();

并制作一个 for 循环以获取您的特定页面并导航至该页面。

谢谢@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;
   }
}