技术开发 频道

Windows Phone 7学习之:页面导航

       【IT168技术】用于Windows Phone 的SilverLight 提供了 PhoneApplicationFrame 和 PhoneApplicationPage类,这两个类是微软针对Silverlight for Windows Phone 另外封装的,它为导航提供了使得。

  PhoneApplicationPage 控件代表了内容相互分离的区段,一个应用程序可以有多个PhoneApplicationPage 。

  PhoneApplicationFrame 扮演了页面控件容器的角色,对页面之间的导航提供了便利,一个应用程序有一个独立的PhoneApplicationFrame。

  Windows Phone 7是通过 使用URI【通用资源标志符(Uniform Resouce Identifier )】映射进行页面导航的。下面通过 DEMO 来了解一下Windows Phone 7的各种导航的写法吧。

  第一种通过使用NavigationService 进行导航控制,如下代码:

以下是代码片段:
NavigationService.Navigate(new Uri("/Layout/SecondPage.xaml", UriKind.Relative));

  UriKind 是一个枚举类型,自带有三种类型,这里我们使用相对路径。

  第二种通过直接使用控件自带功能,即使用微软的HyperLink控件,直接导航,代码如下:

以下是代码片段:
<HyperlinkButton Content="点转" NavigateUri="/Layout/SecondPage.xaml" Height="30" HorizontalAlignment="Left" Margin="101,68,0,0" Name="hyperlinkButton1" VerticalAlignment="Top" Width="200" />

  第三种我们可以为我们的URI路径起一个别名,然后在调用时调用别名即可,可以方便我们管理,使用步骤如下:

  a).在App.xaml的文件上注册Windows.Navigation 命名空间,该空间位于Reference目录下的Microsoft.Phone组件,代码如下:

以下是代码片段:
xmlns:nav="clr-namespace:System.Windows.Navigation;assembly=Microsoft.Phone"

  b).为应用程序添加资源,代码如下:

以下是代码片段:
<Application.Resources>
<nav:UriMapper x:Key="UriMapper">
<nav:UriMapping Uri="SecondPage" MappedUri="/Layout/SecondPage.xaml"/>

</nav:UriMapper>
</Application.Resources>

  c).添加完成后,进入 App.xaml.cs 在它的构造函数里面为应用程序的RootFrame下所在的UriMapper 赋值,这用的话我们应用程序就可以通过它去映射我们传给它的URI 别名。代码如下:

  this.RootFrame.UriMapper = Resources["UriMapper"] as UriMapper;

  Tip:这里的Resources 是一个字典型数据,键值必须跟上面App.xaml 添加资源的UriMapper Key要相对应。

0