Windows Phone学习笔记(3) — — 后退堆栈导航
本次主要学习如何通过操作应用程序的后退导航历史记录(称为后退堆栈),修改其导航。在 Windows Phone OS 7.1 中,向 NavigationService API 添加了处理导航历史记录和启用导航历史记录检测的功能。本主题将使用这些属性和方法检测后退堆栈、删除条目,然后观察这些更改在应用程序导航上产生的效果。应用程序的导航历史记录表示为后进先出结构,称为堆栈,此处该结构还称为后退堆栈。
想要改变后退堆栈的内容,我们需要使用PhoneApplicationFrame的控件类,首先介绍一下PhoneApplicationFrame,PhoneApplicationFrame是WP开发的一个顶级控件,该控件可托管PhoneApplicationPage类。详细请查看一下两个链接PhoneApplicationFrame类和Windows Phone框架和页面导航概述。我是在MSDN的如何使用Windows Phone的后退堆栈进行导航里学习的,它介绍了一个简单的示例可以当参考。在这个示例中PhoneApplicationFrame类除了实现导航的操作,还为应用程序添加了一个模板用以显示记录以及操作。在如何使用Windows Phone的后退堆栈进行导航中,涉及到历史记录操作的主要代码如下:
//声明一个PhoneApplicationFrame变量 public PhoneApplicationFrame RootFrame { get; private set; } //通过PhoneApplicationFrame对象的BackStack获取历史记录的条目 foreach (JournalEntry journalEntry in RootFrame.BackStack.Reverse()) { //通过调用 journalEntry.Source 属性获取到每一条记录的URL } //删除最近的一条记录 //如果需要删除多条记录,可以采用循环的方式 RootFrame.RemoveBackEntry();
以上代码主要介绍了用PhoneApplicationFrame操作导航记录,上面只用到了BackStack和RemoveBackEntry方法。对历史记录的操作主要是参考NavigationService类,它主要是提供方法、属性和事件以支持在 Silverlight 应用程序中的导航。详细请查看NavigationService。