Windows Phone 7 页面导航

1.普通页面导航

使用HyperlinkButton控件的NavigateUri属性进行页面间的导航。

例如:    <HyperlinkButton Content="音乐" Height="30" HorizontalAlignment="Left" Margin="68,65,0,0" 
Name
="MusicshyperlinkButton" VerticalAlignment="Top" Width="200" NavigateUri="/Views/Musics.xaml" />

NavigateUri:属性表示导航到的页面的相对地址。

2.使用Button控件导航。

由于Button控件没有Navigate等支持导航的属性,这里我们借助NavigationService的Navigate方法实现页面导航。

例如注册Button控件的Click事件,并添加如下代码

         private void btn_Movies_Click(object sender, RoutedEventArgs e)          {              NavigationService.Navigate(new Uri("/Views/Musics.xaml",UriKind.Relative));          }

这样也可以实现页面的导航。

以上的导航属于使用页面所在的相对路径进行导航,此外还可以使用别名进行导航,这个和Web开发使用的别名导航类似。请看如下解释。

3.使用别名进行导航.

首先在App.xaml文件中添加一个名字空间

xmlns:nav="clr-namespace:System.Windows.Navigation;assembly=Microsoft.Phone"

使用别名导航需要使用到上面的添加的名字空间。

然后在

<Application.Resources>  </Application.Resources>

中添加以下内容,即将导航页面映射到资源文件中。

<Application.Resources>          <nav:UriMapper x:Key="UriMapper">              <nav:UriMapping Uri="Musics" MappedUri="/Views/MusicsPage.xaml"/>              <nav:UriMapping Uri="Movies" MappedUri="/Views/MoviesPage.xaml"/>              <nav:UriMapping Uri="Ebooks" MappedUri="/Views/EbookPage.xaml"/>              <nav:UriMapping Uri="SurferInternet" MappedUri="/Views/SurferInternetPage.xaml"/>          </nav:UriMapper>      </Application.Resources>

代码解释:

Application.Resources表示应用程序的资源,UriMapper 可以看做是一张导航的地图,它有一些标记,来表示每一张页面,我们称把这些标记称为每张页面的别名(别名不能重复),每一张页面都会有一个唯一的所在地址,一般用相对路径表示,MappedUri属性表示导航页面的所在路径即地址。

上面的代码我们可以看做是在一张地图上标记了四个地方他们叫做Musics,Movies,Ebooks,SurferInternet,他们都有唯一的路径和标示名称。通过访问这些标示名称(引用别名)就可以导航到相应的页面。

添加以上代码还需在App.xaml.cs文件中的public App(){......}位置添加如下代码:

 public App()  {     this.RootFrame.UriMapper = Resources["UriMapper"] as UriMapper;  }

作用是将应用程序的主框架的UriMapper 属性设置为我们之前所写得资源文件,可以看做是把一张标示各个页面的地图赋给UriMapper ,这样我们就可以调用了。

调用方式:

首先声明一个HyperlinkButton控件,将NavigateUri设置为相应页面的别名即可例如:

<HyperlinkButton Content="音乐" Height="30" HorizontalAlignment="Left" Margin="68,65,0,0" 
Name="MusicshyperlinkButton" VerticalAlignment="Top" Width="200" NavigateUri="Musics" />

这样便实现了页面的别名导航。

小建议:这里可以结合之前的一篇关于页面间参数传递一起看:http://www.cnblogs.com/potential/archive/2012/11/03/2752826.html。

说明:以上内容参考Jake Lin的Windows Phone 视频而写。

(版权所有,转载请标明出处)

 

 

你可能感兴趣的:(Windows Phone 7 页面导航)