在Window Phone开发当中,用NavigationService来控制页面导航,如下代码:
this.NavigationService.Navigate(new Uri("/SecondPage.xaml?name=js",UriKind.Relative));
让我们来分析一下:Navigate是用于导航的函数
Uri就是类似于网页中网址,包含了页面的地址信息
"/SecondPage.xaml?name=js"地址是什么意思呢?让我们重点关注一下:
/SecondPage.xaml:就跟Uri第二个参数想对应的,表示页面的相对地址
?name=js:表示这地址在传递的时候带一个值,关键字为:name,值为:js
在这里顺便提一下,是不是跟网页的URL很相似,没错,WP7的页面就是基于Web的基础上开发出来的。相对于android的开发,相当省事!
好,既然页面跳转的时候传值了,那么我们如何在目标页面上获取到这个值呢?看如下代码:
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { base.OnNavigatedTo(e); if (NavigationContext.QueryString.ContainsKey("name")) { textBox1.Text = NavigationContext.QueryString["name"]; } }
从上面的代码来看,在目标页面上有Navigation相对应的一些函数,我们可以在这个重写的方法中添加上面的代码,就可以获取到【name】的值了 在这也介绍一个这个重写的函数:【OnNavigatedTo】,也就是【navigate to me】的意思:从另外一个页面跳转到当前页面!当然还有一个相对应的函数:
protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e) { base.OnNavigatedFrom(e); }
【OnNavigatedFrom】,这表示【navigate from me】:从当前页面跳转到另外一个页面!