[翻译]WP7 QuickStart-第十篇-页面导航
原文地址:http://create.msdn.com/en-US/education/quickstarts/Navigation
【译者注:这篇文章是翻译自微软官方的WP7 QuickStart的第十篇,讲述WP下的页面导航。部分内容加入了自己的理解和表达习惯。而翻译此系列的主要目的一是为了练习英语,二是让自己作为一个 BI开发者对WP7的开发有一个了解。部分翻译不当的地方望各位高人指出批评指正】
Windows Phone下的导航可以定义为是允许用户在不同内容的页面之间的来回移动。这种导航模型使你能创建更符合Windows Phone的基于视图的应用程序。此篇主要描述在程序中如何在不同页面之间导航。
主要包括以下内容:
框架和页面
页面导航
数据的传递
应用程序栏
后退按钮
框架和页面
在Windows Phone下的导航和传统中的Silverlight比较相似,但是它已经被扩展成搭载手机特殊功能的方式。这个导航模型基于PhoneApplicationFrame控件。这个控件包含用户可以导航的一个或者多个PhoneApplicationPage控件。
页面是一个持续状态的集合,它可以视为一个包含内容或者链接到其它页面的链接的Silverlight页面。应用程序中也可以包含弹出页面,消息框,登录页面以及初始屏幕。
只有两个页面之间的移动才被认为是Windows Phone的导航。从登录界面或者初始屏幕移动到主页面是不被认为是导航,而是转移【译者注:Transition】。
页面导航
页面导航最简单的方式就是通过HyperlinkButton控件,其中的NavigationUri属性用来指定导航到哪个页面。下面的示例演示如何从一个页面导航到另一个叫SecondPage.xaml的页面。
XAML
<HyperlinkButton NavigateUri="SecondPage.xaml" />
如果不想使用HyperlinkButton,可以使用NavigationService来实现导航。这个类包含一些属性和方法以及事件来帮助你完成导航。其中的NavigationService.Navigate方法用来导航到一个指定的页面。从一个页面导航到另一个页面,遵循下面的步骤。
1. 在Visual Studio里创建一个Windows Phone应用程序。
2. 填加一个Windows Phone纵向页面,名称为SecondPage.xaml,主页面MainPage将导航到这个页面。
3. 使用NavigationService.Navigate方法导航到SecondPage.xaml。
4. 使用NavigationService.GoBack方法返回到MainPage.xaml
下面的示例创建两个页面,名称为Home页和Second页。你可以在Home页面单击“Go to the second page”按钮跳转到Second页面。这就是用到了在按钮的单击事件处理中调用NavigationService.Navigate方法以及Second页面的URL信息实现的。在Second页面中也可以单击“Go back to Main Page”按钮返回到Home页面,这里调用的是NavigationService.GoBack方法。这个方法将后退到最近的一个页面,在这个示例里就是Home页面。在这个方法被调用之前,需要通过NavigationService.CanGoBack属性判定下是否存在回退到的页面。
提示:
尽管这个示例中用到的是NavigationService.GoBack方法,点击设备上的后退按钮一样也是可以导航到前一个页面的。
MainPage.xaml
<Grid x:Name="LayoutRoot" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>