windows phone 页面传值(7)

简介: 原文:windows phone 页面传值(7)在windows phone 中微软为我们提供了页面间传递参数的解决方案,下面就为大家介绍使用方法,页面传值的案例中我们建立两个页面,一个是MainPage另一个是SecondPage页面;MianPage页面的主要代码为:           ...
原文: windows phone 页面传值(7)

在windows phone 中微软为我们提供了页面间传递参数的解决方案,下面就为大家介绍使用方法,页面传值的案例中我们建立两个页面,一个是MainPage另一个是SecondPage页面;MianPage页面的主要代码为:

 

    < Grid  x:Name ="ContentPanel"  Grid.Row ="1"  Background ="Goldenrod"  Margin ="12,0,12,0" ></ Grid >
         < TextBlock  x:Name ="Navigation"  Text ="导航到第二个页面"  Grid.Row ="1"  VerticalAlignment ="Center"  HorizontalAlignment ="Center"  ManipulationStarted ="Navigation_ManipulationStarted" ></ TextBlock >
     </ Grid >

 MainPage 设置好颜色的效果图:

 

 从上面代码可以看出我们为名为ContentPanel的Grid的属性Background设置为一个金麒麟色,当点击名为Navigation的TextBlock元素时,把ContentPanel的Grid的属性Background设置的颜色传递到第二个页面去;Navigation的事件ManipulationStarted 的隐藏代码为:

img_405b18b4b6584ae338e0f6ecaf736533.gif View Code
private  void Navigation_ManipulationStarted( object sender, ManipulationStartedEventArgs e)
        {
             // 获得颜色ARGB值
            SolidColorBrush scb = (SolidColorBrush)ContentPanel.Background;
            Color c = scb.Color;
             // 参数传递格式--知识点①
            Uri uri =  new Uri( " /SecondPage.xaml?Red= "+c.R+ " &Green= "+c.G+ " &Blue= "+c.B, UriKind.Relative);
             this.NavigationService.Source = uri;
                       

            e.Complete();
            e.Handled =  true;
        }

 页面需要传递的值设置好之后,会导航到第二个页面SecondPage页面,SecondPage.xaml文件中的主要代码为:

 

 
 <Grid x:Name= " ContentPanel " Grid.Row= " 1 " Margin= " 12,0,12,0 "></Grid>
        <TextBlock x:Name= " Navigation " Text= " 导航到第-个页面 " Grid.Row= " 1 " VerticalAlignment= " Center " HorizontalAlignment= " Center " ManipulationStarted= " Navigation_ManipulationStarted "></TextBlock>
    </Grid> 

 SecondPage页面效果:

 

 从上面代码中看一看出我们并没有名为ContentPanel的Grid的属性Background设置颜色值,这里我们会从隐藏文件对其背景颜色进行设置,Navigation的事件ManipulationStarted 的隐藏代码为:

img_405b18b4b6584ae338e0f6ecaf736533.gif View Code
   // textblock的导航时间
         private  void Navigation_ManipulationStarted( object sender, ManipulationStartedEventArgs e)
        {
             this.NavigationService.Navigate( new Uri( " /MainPage.xaml ", UriKind.Relative));
            e.Complete();
            e.Handled =  true;
        }

 

 OnNavigatedTo隐藏文件的方法是:

img_405b18b4b6584ae338e0f6ecaf736533.gif View Code
   // 活动页面构造函数之后--知识点②
         protected  override  void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
        {
             // 以泛型集合的方式获得传递过来数值--知识点③
            IDictionary< stringstring> para =  this.NavigationContext.QueryString;
             if (para.Count> 0)
            {
                 byte r = Byte.Parse(para[ " Red "]);
                 byte b = Byte.Parse(para[ " Blue "]);
                 byte g = Byte.Parse(para[ " Green "]);
                ContentPanel.Background= new SolidColorBrush(Color.FromArgb( 255,r,g,b));
                
            }
           
        }

此方法获得从MainPage也传递类的参数,我们进行解析,根据解析到的结果设置 SecondPage中ContentPanel.Background属性,这也就完成参数的传递了;


 

  

 

这里参数传递的格式是我们要注意的,参数是在相对URI后紧接着是问号(?),之后就是键值对的形式了(key=value),如果参数是多个,则需要用一个&符号隔开


 

这里需要用到的一个方法,即 OnNavigatedTo;官方给出的结识是: 当页面变为框架中的活动页面时调用,可以理解为从A页面导航到B页面的时候,此时B页面变为活动页面,这时候调用该方法,此方法是在活动页面构造函数加载完成之后被调用,也就是说构造函数执行完成之后就会立即执行此方法

 

NavigationContext类是获取导航的状态,唯一的一个属性 QueryString是获取查询字符串值的集合。在返回的集合类型中根据Key获得Value的值

 

记住:参数传递的格式多个参数传递需要用&符号隔开;活动页面接受参数时重写的 OnNavigatedTo方法;this.NavigationContext.QueryString接受所有传递到此页面的参数及其值,返回一个字典容器

 

目录
相关文章
|
消息中间件 数据安全/隐私保护 Windows
windows下RabbitMQ安装后,无法进入web管理页面问题
windows下RabbitMQ安装后,无法进入web管理页面问题
1169 1
|
Windows
【Windows】 Win10下报错:该文件没有与之关联的应用来执行该操作。请安装应用,若已经安装应用,请在“默认应用设置”页面中创建关联
【Windows】 Win10下报错:该文件没有与之关联的应用来执行该操作。请安装应用,若已经安装应用,请在“默认应用设置”页面中创建关联
1520 1
|
Java 应用服务中间件 Windows
【Azure 应用服务】App Service for Windows 环境中为Tomcat自定义4xx/5xx页面
【Azure 应用服务】App Service for Windows 环境中为Tomcat自定义4xx/5xx页面
|
Web App开发 Windows
Windows【Chrome浏览器 01】首次安装的谷歌Chrome浏览器出现无法打开此页面问题处理(详细图文步骤)
Windows【Chrome浏览器 01】首次安装的谷歌Chrome浏览器出现无法打开此页面问题处理(详细图文步骤)
350 0
|
消息中间件 数据安全/隐私保护 Windows
windows下RabbitMQ安装后,无法进入web管理页面问题
windows下RabbitMQ安装后,无法进入web管理页面问题
417 0
|
Android开发 iOS开发 Windows
Windows Phone 寿终正寝了,这些经典机型你还记得吗?
不久前,随着最后一家WP手机厂商惠普宣布取消今后Windows Phone的研发计划,以及微软官方声明对WP8.1系统今后所有升级维护的终止,WP手机,作为曾经和安卓手机、苹果手机并驾齐驱的三大智能手机之一,正式寿终正寝。
1806 0
Windows Phone 寿终正寝了,这些经典机型你还记得吗?
|
XML 开发框架 前端开发
Windows Phone快速入门需掌握哪些能力
在此之前,先普及下Windows Phone的概念和开发工具的介绍。 Windows Phone是微软公司开发的手机操作系统,它将微软旗下的Xbox Live游戏、Xbox Music音乐与独特的视频体验集成至手机中。2012年6月21日,微软正式发布Windows Phone 8,采用和Windows 8相同的Windows NT内核,同时也针对市场的Windows Phone 7.5发布Windows Phone 7.8。
308 0
Windows Phone快速入门需掌握哪些能力
|
移动开发 Android开发 开发者
Windows Phone 8.1 新功能汇总 开发者预览版开放下载
在Build 2014大会上,微软正式发布了传闻已久的Windows Phone 8.1系统,所有的Windows Phone 8手机都可以升级,微软这次可谓是十分厚道。虽然并非迭代升级,但WP 8.1还是拥有很多重大更新,对于微软进一步完善移动平台拥有积极的意义。下面,就一起来了解一下WP 8.1的主要新特性。
352 0
Windows Phone 8.1 新功能汇总 开发者预览版开放下载
|
编解码 前端开发 JavaScript
Windows Phone 下开发 LBS 应用
基于位置的服务(Location Based Service,LBS),它是通过电信移动运营商的无线电通讯网络(如GSM网、CDMA网)或外部定位方式(如GPS)获取移动终端用户的位置信息(地理坐标,或大地坐标),在GIS(Geographic Information System,地理信息系统)平台的支持下,为用户提供相应服务的一种增值业务。
352 0