原文:windows phone 页面导航(6)

页面导航的例子我们使用的是两个页面,从第一个页面(MainPage)导航到第二个页面(SecondPage),然后可以从第二个页面导航到第一个页面 ,使用的os 7.1;

页面导航没有引入新的命名空间使用的到属性是派生于PhoneApplicationPage类;

MainPage.xaml 文件中用到的代码为:

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

隐藏文件代码为:

//textblock的导航时间
        private void Navigation_ManipulationStarted(object sender, ManipulationStartedEventArgs e)
        {
            //为什么一定是相对的--知识点①
            this.NavigationService.Navigate(new Uri("/SecondPage.xaml", UriKind.Relative));

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

        protected override void OnManipulationStarted(ManipulationStartedEventArgs e)
        {
            //知识点②
            SolidColorBrush scb=new SolidColorBrush ();
            //知识点③
            Color color = new Color();
            color.A = (byte);
            color.R = (byte);
            color.G = (byte);
            color.B = (byte);
            scb.Color = color;

            ContentPanel.Background = scb;
            base.OnManipulationStarted(e);
        }

隐藏文件的代码是在默认代码的基础上加上以上两个方法,实现的效果是当点击(触摸)非名为Navigation的TextBlock元素时,ContenPanel就会改变为设置好的固定颜色,MainPage效果图:

知识点①:this.NavigationService.Navigate() 是页面导航的核心方法参数是URI类型的对象,所以要New该类,并且实例化URI的时候SecondPage.xaml前有斜线,第二个参数表明    此URI是相对于SecondPage.xaml,绝对的URI是指完整引用某个资源如: http://www.sensengo.com/Index.html  相对URI取决于前面定义的基 URI(例如:/Index.html)

    URI的构造函数有一个包含了基URI和相对URI字符串:

Uri(Uri, String)

根据指定的基 URI 和相对 URI 字符串,初始化 Uri 类的新实例

     实例:

Uri baseUri = new Uri("http://www.contoso.com");      Uri myUri = new Uri(baseUri, "catalog/shownew.htm");

     所以URI实例构成了绝对URI,myUri.ToString()字符串是为:http://www.contoso.com/catalog/shownew.htm

  知识点②:SolidColorBrush类是绘制纯色区域,SolidColorBrush的另一种构造方法为:SolidColorBrush(Color),所以以上代码也可以这样实现:   
ContenPane.Backgroud= new solidColorBrush(    Color.FromArgb(,(byte)135,(byte)25,(byte)15)); 

  知识点③Color这里就是SolidColorBrush的属性color设置颜色,color类描绘的就是一个ARGB颜色,在形成图像中的每个像素的颜色表示为一个 32 位数:分别用 8 位表示 Alpha、红色、绿色和蓝色 (ARGB)。 这四个分量的值都是 0 到 255,其中 0 表示没有亮度,255 表示最大亮度。 alpha 分量指定颜色的透明度:0 表示完全透明,255 表示完全不透明。 要确定颜色的 alpha、红色、绿色或蓝色成分

SecondPage.xaml 文件主要代码:

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

隐藏文件添加的两个方法代码:

 //textblock的导航时间
        private void Navigation_ManipulationStarted(object sender, ManipulationStartedEventArgs e)
        {
            //两个方式实现的效果一样,但是原理不同--知识点④
            this.NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
            //this.NavigationService.GoBack();
            e.Complete();
            e.Handled = true;
        }

        protected override void OnManipulationStarted(ManipulationStartedEventArgs e)
        {
            //纯色
            SolidColorBrush scb = new SolidColorBrush();
            //alpha
            Color color = new Color();
            color.A = (byte);
            color.R = (byte);
            color.G = (byte);
            color.B = (byte);
            scb.Color = color;

            ContentPanel.Background = scb;
            base.OnManipulationStarted(e);
        }

知识点④:在这里因为只有两个页面,返回到上一个页面的效果一样,但是原理不同,this.NavigationService.Navigate是实现一个新的URI实例,this.NavigationService.GoBack()则是后退到历史记录中的最新页面,如果没有历史记录页面则退出程序;

 知识点⑤ :墓碑化:因为windows phone手机不支持第三方程序后台,所以提供了另一种方法Tomstone,简单的讲就是在程序A还在运行的情况下,突然其他程序B,此时系统会暂时关闭程序A的线程,并暂存其状态;当程序B使用完毕,程序A线程会重新启动,恢复程序A之前的状态;本节的页面导航就是墓碑化的例子

小结:导航的核心一句话就是:this.NavigationService.Navigate()和返回上一个页面this.NavigationService.GoBack(),简单了解墓碑化;发现一个方  法也可以导航到其他页面如下:

  Uri uri = new Uri("/SecondPage.xaml", UriKind.Relative);            this.NavigationService.Source = uri;

windows phone 页面导航(6)的更多相关文章

  1. Windows Phone 8.1 新特性 - 页面导航

    本篇介绍一下Windows Phone 8.1 中页面导航的实现方式. 大家对Windows Phone 8 中页面导航的实现一定不陌生,我们使用 NavigationService 来实现.具体写法 ...

  2. 与众不同 windows phone (27) - Feature(特性)之搜索的可扩展性, 程序的生命周期和页面的生命周期, 页面导航, 系统状态栏

    原文:与众不同 windows phone (27) - Feature(特性)之搜索的可扩展性, 程序的生命周期和页面的生命周期, 页面导航, 系统状态栏 [索引页][源码下载] 与众不同 wind ...

  3. windows phone8.1:页面导航详解

    小梦给大家带来windows phone 8.1应用开发实战教程,分享自己学习,开发过程中的经验和技巧. 今天给大家分享windows phone 8.1页面导航相关知识.涉及知识点如下: 页面一导航 ...

  4. WinPhone学习笔记(一)——页面导航与页面相关

    最近学一下Windows Phone(接下来简称“WinPhone”)的开发,在很久很久前稍探究一下WinPhone中对一些传感器的开发,那么现在就从头来学学WinPhone的开发.先从WinPhon ...

  5. 【Win10】页面导航的实现

    注:本文基于 Windows 10 10240 及其 SDK 编写,若以后有变化,请以新版本为准. 页面导航我们是再熟悉不过了,浏览器.手机 App 大多都使用这种方式来展示内容.在 Windows ...

  6. wp8.1 Study1: 页面导航&页面间值传递

    摘要:wp8.1与wp8中很多API是不一样了,wp8.1把以前wp7.x时的api去掉了,更多与win8.1的API相似.比如以下的页面导航和页面之间的值传递 1.页面导航 利用Frame.Navi ...

  7. windows phone 页面传值(7)

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

  8. Win10系列:JavaScript页面导航

    页面导航是在开发应用的过程中使用频率较高的技术,其中比较常用的导航方式有多页导航和页内导航,采用多页导航方式的应用程序包含一系列的页面,在一个页面中加入另一个页面的链接地址后,单击链接将跳转到指定页面 ...

  9. wp8.1 页面返回 页面导航

    public The_second() public second() { this.InitializeComponent(); Frame frame = Window.Current.Conte ...

随机推荐

  1. C++中字母大写和小写转换实现的优化

    C++中字母大写和小写转换实现的优化 write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie 讨论新闻组及文件 在本文中所有以转换为小写为例. 从推荐复用代 ...

  2. 暂停和屏蔽右键网页中的Flash

    如何暂停网页中的Flash?原理很简单,就是屏蔽Flash的消息即可.屏蔽右键也可以通过此方法 直接贴代码吧,加了注释,很容易就能懂了 新建工程,加一个WebBrowser,再加两个按钮.Flash ...

  3. c++ anonymous namespace -- 匿名空间

    c++ anonymous namespace -- 匿名空间 匿名空间,匿名类,匿名联合体,匿名结构体.   匿名空间   #include <stdio.h> namespace A ...

  4. android: WheelView组件(滑轮组件)的应用!

    android前段组件中, 填表单,选择条目 的样式有很多, WheelView滚动组件为其中一种,如下图所示:                                          前两 ...

  5. 程序猿的量化交易之路(29)--Cointrader之Tick实体(16)

    转载需注明出处:http://blog.csdn.net/minimicall,http://cloudtrade.top Tick:什么是Tick,在交易平台中很常见,事实上就 单笔交易时某仅仅证券 ...

  6. CentOS下安装MySQL,Windows下使用Navicat for MySql连接

    安装 查看有没有安装过:          yum list installed mysql*          rpm -qa | grep mysql* 查看有没有安装包:          yu ...

  7. Java网络编程-对象编解码方案、优劣对照

    书籍推荐:   实例代码 :http://download.csdn.net/detail/jiangtao_st/7677503 watermark/2/text/aHR0cDovL2Jsb2cuY ...

  8. uva 1151 - Buy or Build poj 2784 Buy or Build(最小生成树)

    最小生成树算法简单 只是增加了一些新的东西,对于需要最小生成树算法 和中 并检查使用的一系列 还有一些更深入的了解. 方法的一些复杂问题 #include<cstdio> #include ...

  9. 深刻:截获windows的消息并分析实例(DefWindowProc),以WM_NCHITTEST举例(Windows下每一个鼠标消息都是由 WM_NCHITTEST 消息产生的,这个消息的参数包含了鼠标位置的信息)

    1,回调函数工作机制 回调函数由操作系统自动调用,回调函数的返回值当然也是返回给操作系统了. 2,截获操作系统发出的消息,截获到后,将另外一个消息返回给操作系统,已达到欺骗操作系统的目的. 下面还是以 ...

  10. RGB與CIELAB色彩空間轉換

    原地址:http://cg2010studio.wordpress.com/2012/10/02/rgb與cielab色彩空間轉換/ 之前有研究CIE L*a*b*色彩空間,現在想更進一步探討RGB色 ...