导航(Navigation)
Window Phone的导航可以让用户从一个页面导航另外一个页面,在不同的页面之间进行连接跳转。
1。Frame和Page
Window Phone的导航模型基于 PhoneApplicationFrame。 PhoneApplicationFrame控件包含了一个或多个 PhoneApplicationPage,可以使我们在不同的Page之间进行导航和跳转到不同的页面。
PhoneApplicationPage 页面可以简单的认为是手机一个屏幕上内容,可以包含其他控件和内容。类似于winform中的一个From,也类似于html中的一个html页面
2.在不同Pages之间的导航。
在不同Page之间导航,最简单的控件是 HyperlinkButton。给这个控件的NavigateUri的属性赋值,就可以导航到特定的页面去,很简单
<HyperlinkButton NavigateUri="/SecondPage.xaml" />
或者使用NavigationService类,这个类提供一些方法,属性和事件来完成导航工作
代码
NavigationService.Navigate(new Uri("/Page1.xaml", UriKind.RelativeOrAbsolute));
NavigationService.GoBack这个方法可以退回到上一页
3.在源页面和目标页面之间传递数据
传递数据的方式和html的get方式传值很类似
在Page1页面的按钮事件中写如下代码:
NavigationService.Navigate(new Uri("/Page1.xaml?msg=helloworld", UriKind.RelativeOrAbsolute));
问号?msg=helloworld,这样就可以传值。多个使用&分割
在目标页面Page2页面中读取这些参数,需要重写Page.OnNavigatedTo 这个方法,代码如下:
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { base.OnNavigatedTo(e); string msg = ""; //这个方法获取所有的传入参数,使用key-value对应的模式 IDictionary<string, string> param = NavigationContext.QueryString; //这个方法只获取某个特定key对应的value值 if (NavigationContext.QueryString.TryGetValue("msg",out msg)) { this.Msg.Text = msg; } }