写在前面的一些废话:

  前段时间一直忙于其他的事情,好长时间没有更新博客,很多东西虽然看过、学过,但是没有仔细去思考,去总结,长时间不用或者用的少难免会遗忘。最近由于家里以及感情方面的事,人也变得有点怨天尤人,总给自己找各种各样的借口。趁这个国庆假期,好好的对之前的一些学习以及工作做一番总结。

  用过Windows Phone的童鞋都会有这样的印象,动画效果不逊于小水果的,有的甚至还比小水果的好。开机时Live Tile一个个按次序顺序排列,退出程序时的那种向内倾斜的翻页效果等等。这些都是Windows Phone独具特色的动画效果。那么我们能否在自己的应用中实现类似的效果呢?答案当然是肯定的。

  Silverlight团队的Toolkit中为我们提供了这样一套组件,叫做TransitionServices服务,我们可以用它来实现页面间的跳转动画。该服务提供了一下几个跳转动画:

  SlideTransition : 上下或者左右滑动效果,具体有Mode值决定:

  SlideUpFadeIn 向上飞入

  SlideUpFadeOut 向上飞出

  SlideDownFadeIn 向下飞入

  SlideDownFadeOut 向下飞出

  SlideLeftFadeIn 向左飞入

  SlideLeftFadeIn 向左飞出

  SlideRightFadeIn 向右飞入

  SlideRightFadeIn 向右飞出

  RollTransition:360度旋转动画效果

  RotateTransition :旋转效果,Mode枚举值如下:

  In180Clockwise 180顺时针转入

  Out180Clockwise 180顺时针转出

  In180Counterclockwise 180逆时针转入

  Out180Counterclockwise 180逆时针转出

  In90Clockwise 90顺时针转入

  Out90Clockwise 90顺时针转出

  In90Counterclockwise 90逆时针转入

  Out90Counterclockwise 90逆时针转出

  SwivelTransition : 垂直翻转动画效果,Mode值枚举如下:

  BackwardIn 向后翻转入

  BackwardOut 向后翻转出

  ForwardIn 向前翻转入

  ForwardOut 向前翻转出

  FullScreenIn 全屏翻转入

  FullScreenOut 全屏翻转出

  TurnstileTransition:左右翻页动画效果,Mode枚举值如下:

  BackwardIn 向后翻入

  BackwardOut 向后翻出

  ForwardIn 向前翻入

  ForwardOut 向前翻出

  可以看到,Toolikit为我们提供了丰富的动画效果,下面就以翻页动画效果为例,来实现页面跳转动画。

  如果是针对单个页面,首先在App.xmal.cs文件中,找到Rootframe初始化的地方,替换成如下代码:?

  //RootFrame = new PhoneApplicationFrame(); RootFrame = new TransitionFrame();

  接着需要在页面的资源里添加一下几句代码即可:

<toolkit:transitionservice.navigationintransition>
 <toolkit:navigationintransition>
<toolkit:navigationintransition.backward>
<toolkit:turnstiletransition mode="BackwardIn" />
</toolkit:navigationintransition.backward>
<toolkit:navigationintransition.forward>
<toolkit:turnstiletransition mode="ForwardIn" />
</toolkit:navigationintransition.forward>
</toolkit:navigationintransition>
</toolkit:transitionservice.navigationintransition>
<toolkit:transitionservice.navigationouttransition>
<toolkit:navigationouttransition>
<toolkit:navigationouttransition.forward>
<toolkit:turnstiletransition mode="ForwardOut" />
</toolkit:navigationouttransition.forward>
<toolkit:navigationouttransition.backward>
<toolkit:turnstiletransition mode="BackwardOut" />
</toolkit:navigationouttransition.backward>
</toolkit:navigationouttransition>
</toolkit:transitionservice.navigationouttransition> 
 

  但是有时候,我们需要针对整个App的所有页面都设置跳转动画,当然,我们可以把上述代码拷贝到每个页面中,但是这样看着难免有点不舒服,这时我们可以创建一个公共的页面Style,然后应用到各个页面当中。在App.xaml文件的资源节点中或者自定义的资源文件中,添加一个这样的Style:

<style x:key="PageTranstionStyle" targettype="phone:PhoneApplicationPage">

<setter property="toolkit:TransitionService.NavigationInTransition"> 
           <setter.value> 
               <toolkit:navigationintransition> 
                   <toolkit:navigationintransition.backward> 
                       <toolkit:turnstiletransition mode="BackwardIn"/> 
                   </toolkit:navigationintransition.backward> 
                   <toolkit:navigationintransition.forward> 
                       <toolkit:turnstiletransition mode="ForwardIn" /> 
                   </toolkit:navigationintransition.forward> 
               </toolkit:navigationintransition> 
           </setter.value> 
       </setter> 
       <setter property="toolkit:TransitionService.NavigationOutTransition"> 
           <setter.value> 
               <toolkit:navigationouttransition> 
                   <toolkit:navigationouttransition.backward> 
                       <toolkit:turnstiletransition mode="BackwardOut"/> 
                   </toolkit:navigationouttransition.backward> 
                   <toolkit:navigationouttransition.forward> 
                       <toolkit:turnstiletransition mode="ForwardOut" /> 
                   </toolkit:navigationouttransition.forward> 
               </toolkit:navigationouttransition> 
           </setter.value> 
       </setter> 
   </style> 

  然后在各个页面中加入如下代码即可:

  Style="{StaticResource PageTranstionStyle}"

  本文来自HamGuy的博客,原文地址:http://www.hamguy.info/?p=439

Windows Phone下页面跳转动画的实现的更多相关文章

  1. Vue页面跳转动画效果实现

    Vue页面跳转动画效果实现:https://juejin.im/post/5ba358a56fb9a05d2068401d

  2. WP开发笔记——WP APP添加页面跳转动画

    微软的toolkit团队为我们为我们提供了这样一套组件,叫做TransitionServices服务. 简单说一下它具备的效果: turnstile(轴旋转效果): turnstile feather ...

  3. Vue仿微信app页面跳转动画

    10:14:11独立开发者在开发移动端产品时,为了更高效,通常会使用Web技术来开发移动端项目,可以同时适配Android.iOS.H5,稍加改动还可适配微信小程序. 在使用Vue.js开发移动端页面 ...

  4. SSH框架下页面跳转入门篇

    一.完成目标,因为WEB-INF下面的界面不能通过输入地址的方式直接访问,所以需要在后台定义一个方法跳转过去. 步骤1:.创建普通类继承ActionSupport类,并定义一个方法返回需要跳转的路径 ...

  5. ios&h5混合开发项目仿app页面跳转优化

    前言:本人原本是ios开发工程师,但由于现今H5的兴起,行内刮起了一阵混合开发的风气,趁着这股劲,我也学了前端开发,不说研究的多深,但也能胜任日常的开发工作.长话短说,现今的混合开发应该还处于摸索阶段 ...

  6. 前端开发--ppt展示页面跳转逻辑实现

    1. 工程地址:https://github.com/digitalClass/web_page 网站发布地址: http://115.28.30.25:8029/ 2. 今天遇到一个小问题, 同组的 ...

  7. PageSlider中CSS3动画在除首屏之外先加载页面后执行动画的问题

    PageSlider中CSS3动画在除首屏之外先加载页面后执行动画的问题,PageSlider中加入CSS3动画的话,默认只有首屏是从无到有执行动画,其他屏都是显示下页面再执行动画 这就造成其他屏的动 ...

  8. .Net程序猿玩转Android开发---(11)页面跳转

    在不论什么程序开发中,都会遇到页面之间跳转的情况,Android开发也不例外.这一节,我们来认识下Android项目中如何进行页面跳转.页面跳转分为有參数和无參数页面跳转,已经接受还有一个页面的返回值 ...

  9. [UWP小白日记-9]页面跳转过度动画(二)

    又打算动手写了 [UWP小白日记-6]页面跳转过度动画 上次写的,这次随着学习的进度使用新的玩法. 最近在搞GIT的学习,结果把好好的项目玩坏,都不知道当时是怎么想的拿在写的APP来玩GIT,害我重写 ...

随机推荐

  1. 使用fullPage.js遇到的问题以及翻译

    使用fullPage.js做一简单页面,遇一古怪问题:.section中的h1标签始终被一插件生成的标签包裹,导致样式调整好不困难!花费数小时排查为何会生成这样一个标签,最终在fullPage.js的 ...

  2. C++ 头文件系列 (algorithm)

    简介 algorithm头文件是C++的标准算法库,它主要应用在容器上. 因为所有的算法都是通过迭代器进行操作的,所以算法的运算实际上是和具体的数据结构相分离的 ,也就是说,具有低耦合性. 因此,任何 ...

  3. Modelbuilder进阶教程

    Modelbuilder进阶教程 By 李远祥 Modelbuilder 进阶1 自定义变量 参数是用来交互操作的,因此,参数具备非常大的灵活性,包括参数的定义和调用. 除了工具里面的参数之外,还可以 ...

  4. jquery的deferred异步

    推荐方法: var wait = function(dtd){ var dtd = $.Deferred(); //在函数内部,新建一个Deferred对象 var tasks = function( ...

  5. [译] 关于 Git 你需要知道的一些事情

    分支和合并 Git 跟其他版本控制系统最大的优势就在于其高级的分支模型. Git 允许而且 鼓励 你在本地使用多个完全独立的分支.这些分支的创建,合并和删除几乎都可以在几秒内完成. 这意味着你可以轻松 ...

  6. Ubuntu 14.04 64bit 系统下打开PHPadmin时出现缺少mysqli|mysql 扩展的解决方法(php5)

    网上找了很多方法,都是翻来覆去的抄袭. 都在说把 /etc/php5/apache2/php.ini 下面的  ;extension=php_mysqli.dll  前面的 ; 注释符号去掉 再重启 ...

  7. iOS ReactiveCocoa(RAC)学习详解

    概述: ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的一个框架,有时间,自己也了解学习了一下这个框架的一些基本的应用,其实你要学的话网上是有很多很多的博 ...

  8. vue实现图书管理demo

    年后公司的项目要求用到vue.js知识,我angular没有学,node.js和react也只是了解了一点点,所以学起来比较困难.如果你想学vue.js的知识,推荐网址:http://vuejs.or ...

  9. IntelliJ IDEA 2016.1.4 git 切换分支详解

    参考网址: http://cache.baiducontent.com/c?m=9d78d513d9981de90fb3ca255501d7174202d7743da7c7647ac3e54a8414 ...

  10. 缓冲流自动把getchar()填充

    #include"stdio.h" #include"conio.h" #include<stdlib.h> int main() { char c ...