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;
}
}
我需要在单击按钮时返回到特定页面。更像是自定义后退按钮。
我可以转到确切的页面,如果我知道页面是什么,
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;
}
}