WindowPhone(Xaml)中的导航(Navigation)

导航(Navigation)

Window Phone的导航可以让用户从一个页面导航另外一个页面,在不同的页面之间进行连接跳转。

1。Frame和Page

Window Phone的导航模型基于 PhoneApplicationFramePhoneApplicationFrame控件包含了一个或多个 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;
            }
        }
原文地址:https://www.cnblogs.com/zjypp/p/2332450.html