1.普通页面导航
使用HyperlinkButton控件的NavigateUri属性进行页面间的导航。
例如:
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表示应用程序的资源,UriMapper 可以看做是一张导航的地图,它有一些标记,来表示每一张页面,我们称把这些标记称为每张页面的别名(别名不能重复),每一张页面都会有一个唯一的所在地址,一般用相对路径表示,MappedUri属性表示导航页面的所在路径即地址。
上面的代码我们可以看做是在一张地图上标记了四个地方他们叫做Musics,Movies,Ebooks,SurferInternet,他们都有唯一的路径和标示名称。通过访问这些标示名称(引用别名)就可以导航到相应的页面。
添加以上代码还需在App.xaml.cs文件中的public App(){......}位置添加如下代码:
public App()
{
this.RootFrame.UriMapper = Resources["UriMapper"] as UriMapper;
}
作用是将应用程序的主框架的UriMapper 属性设置为我们之前所写得资源文件,可以看做是把一张标示各个页面的地图赋给UriMapper ,这样我们就可以调用了。
调用方式:
首先声明一个HyperlinkButton控件,将NavigateUri设置为相应页面的别名即可例如:
这样便实现了页面的别名导航。
小建议:这里可以结合之前的一篇关于页面间参数传递一起看:http://www.iyunv.com/potential/archive/2012/11/03/2752826.html。
说明:以上内容参考Jake Lin的Windows Phone 视频而写。
(版权所有,转载请标明出处)
|