您的位置:首页 > 其它

Windows Phone 7 页面导航

2012-11-11 13:06 429 查看
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 视频而写。 (版权所有,转载请标明出处)
本文出自 “季默” 博客,请务必保留此出处http://potential.blog.51cto.com/6176930/1402093
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: