Windows Phone动画
从事Windows Phone开发已经有一段时间了,但是一直没有好好的静下心来梳理一下自己这段时间的知识,一是怕自己学问不到家,写不出那些大牛一般的高屋建瓴;二是以 前一直没有写博客的习惯;好了废话不多说了,让我们回到本文的重点Windows Phone的动画。
说到Windwos Phone动画主要分为三类:插值动画(From/To/By)、关键帧动画(UserFrame)、还有就是缓动函数动画,其中缓动函数动画可以创建自己的缓动函数。
好了,让我们先来说一说插值动画吧!这类动画实现起来相对比较简单,顾名思义只要设置一下From/To值或者By值就可以实现动画的变换效果,让我们来看一下这种动画的实现代码吧!

首先不管定义哪个动画我们都需要申明一个故事板,通过故事板我们可以控制动画的开始、暂停、播放、结束。上面代码里面还有几个关键的属性:TargetName:主要是申明当前这个动画所要应用的目标控件,TargetProperty:则是申明当前动画所要应用的目标控件的哪个属性上面,这里还要说一点的就是动画也是基于属性的。然后故事板里面的才是真正的动画内容,针对不同的属性,这里面我们需要定义不同动画,由于代码里面我们设置了:TargetProperty="Fill",所以我们需要使用ColorAnimation这个动画。在ColorAnimation动画里面我们设置了几个属性:From:设置Fill属性初始变化的状态,To:设置经过动画变换之后Fill属性的值,Duration:设置整个动画运行所需要的时间,RepeatBehavier:申明这个动画是否一直重复运行,AutoReverse:申明这个动画是否可以逆向复原,如果设置了这个属性的话,则整个动画运行的时间周期将加倍。最后我们同个一个按钮点击事件,启动运行该动画:

这是放在前台XAML文件里面进行申明的,当然我们也可以通过后台代码进行定义:

我自己在测试的时候还遇到了两个问题:一.如果直接将TargetProperty属性设置成:Fill的话,运行的时候还会抛出异常,原因是Fill是SolidColorBrush类型的,所以我们这里需要设置SolidColorBrush.Color属性;二.后台代码设置动画的时候,我们需要使用SetTarget方法将动画绑定到指定的控件上面。
接下来让我们来说一下关键帧动画,如果你对flash比较了解的话,相信应该对关键帧这个概念不会太陌生,没错,动画的组成实际就是有图片一张一张叠加而成的,这其中的每一帧就对应某个特定状态的一张图片。在Windows Phone里面要定义关键帧动画也是很简单的,让我们来看一下实现的代码吧!

可以看到在Windows Phone里面一般关键帧动画的结尾都是:KeyFrame,在这个关键帧动画里面我们设置了四个关键帧,分别是:线性插值、样条插值、离散值、关联缓动函数,我们可以分别设置到达当前关键所需要的时间(KeyTime),至于这四个关键帧具体区别,可以参照官方解释。下面这张表是:WPF里面插值、关键帧动画的完整列表

最后让我们来看一下缓动函数动画吧!废话不多说,先来看一下实现代码吧!

在这个动画里面我们控制方块旋转的同时,使用系统给定的函数:BackEase使方块旋转的同时带有一定的收回效果,通过属性Amplitude我们可以控制收回的幅度,通过属性EasingMode我们可以控制收回的幅度路径。当然系统里面还提供了很多其他的缓动函数,但是使用方法都是差不多的。本文源码:http://pan.baidu.com/disk/home
Windows Phone动画的更多相关文章
- [WP8.1UI控件编程]Windows Phone动画方案的选择
8.1 动画方案的选择 Windows Phone的动画实现方式有线性插值动画(3种类型).关键祯动画(4种类型)和基于帧动画,甚至还有定时器动画,然后动画所改变的UI元素属性可以是普通的UI元素属性 ...
- 理论制作 Windows 开机动画
第一次接触 Windows 开机动画是 2012 年,那时候魔方的版本号还是 3.12,魔方里面有个很酷炫狂霸拽的功能就是替换 Windows 7 的开机动画.一开始我是在IT之家论坛里下载开机动画, ...
- [译]理解 Windows UI 动画引擎
本文译自 Nick Waggoner 的 "Understand what’s possible with the Windows UI Animation Engine",已获原 ...
- 如何在pyqt中在实现无边框窗口的同时保留Windows窗口动画效果(一)
无边框窗体的实现思路 在pyqt中只要 self.setWindowFlags(Qt.FramelessWindowHint) 就可以实现边框的去除,但是没了标题栏也意味着窗口大小无法改变.窗口无法拖 ...
- 《深入理解Windows Phone 8.1 UI控件编程》基于最新的Runtime框架
<深入理解Windows Phone 8.1 UI控件编程>本书基于最新的Windows Phone 8.1 Runtime SDK编写,全面深入地论述了最酷的UI编程技术:实现复杂炫酷的 ...
- Windows游戏编程之从零开始d
Windows游戏编程之从零开始d I'm back~~恩,几个月不见,大家还好吗? 这段时间真的好多童鞋在博客里留言说或者发邮件说浅墨你回来继续更新博客吧. woxiangnifrr童鞋说每天都在来 ...
- Windows 10 优化
---恢复内容开始--- 0x00 使开始菜单,任务栏,和操作中心透明 --关闭 右下角开始菜单,选择设置,打开个性化菜单,找到颜色一栏.向下滑至最低端,使开始菜单,任务栏,和操作中心透明选项关闭 0 ...
- 《Dotnet9》系列-开源C# WPF项目1《Accelerider.Windows》强力推荐
时间如流水,只能流去不流回! 点赞再看,养成习惯,这是您给我创作的动力! 本文 Dotnet9 https://dotnet9.com 已收录,站长乐于分享dotnet相关技术,比如Winform.W ...
- 【转】Win7注册表的使用(更新中)
一.注册表的存储结构和数据类型 1.基本概念: Windows 7的注册表主要由“键”和“键值”构成,称HKEY为根键(RootKey),SubKey为子键. 键(Key):“位于左侧窗格如同文件夹图 ...
随机推荐
- python基础(set)补充
1.函数参数(引用) 函数的传参,传的是引用 def func(args): args.appand(123) li=[11,22,33] func(li) print(li) [11,22,33, ...
- WebView 获取网页点击事件
网页上的点击按钮 本身绑定了URL,点击的时候webview 会在下面的这个方法中加载URL - (BOOL)webView:(UIWebView*)webView shouldStartLoadWi ...
- 启动obiee
启动obiee:1.启动数据库第一步:打开Oracle监听$ lsnrctl start第二步:使用sysdab角色登录sqlplussqlplus / as sysdba第三步:启动数据库SQL&g ...
- css显示出三角形
其实非常简单,就是设置一个div 让div的宽度和高度都设置为0, 然后为div设置一个border 因为角部位,比如我设置border-left和border-top 角部分是各自占用一半, 所以当 ...
- 非常不错的IT进阶站点
1:CSDN http://www.csdn.net/ 2:Iteye http://www.iteye.com 3:拼吾爱 http://pin5i.com 4:月光博客 http://www.wi ...
- Java基础——集合框架
Java的集合框架是Java中很重要的一环,Java平台提供了一个全新的集合框架.“集合框架”主要由一组用来操作对象的接口组成.不同接口描述一组不同数据类型.Java平台的完整集合框架如下图所示: 上 ...
- 【MVC】关于Action返回结果类型的事儿(上)
一. ASP.NET MVC 1.0 Result 几何? Action的返回值类型到底有几个?咱们来数数看. ASP.NET MVC 1.0 目前一共提供了以下十几种Action返回结果类型: 1. ...
- 解决win 7&win xp等系统无法正常用U盘安装或启动
目前,制作启动U盘通常是用ultraiso,但由于各种硬件设备与系统的更新,导致现在装系统会出现各种错误. 在用ultraiso制作的启动U盘,装XP时,可能找不到引导项:装win7时,可能提示”wi ...
- SVN更新、清理乱码解决
我的电脑信息 win7 64bit svn版本: 先介绍一种最简单的方法,一般都会有效,疑难杂症请用第二种 方法一: 将前面6项全部选上--> [确定] 无效请仔细看下面方法二方法详解 方法二: ...
- 010GCC程序编译
1.GCC的特点: Gcc(GUN C Compiler)是GUN推出的功能强大.性能优越的多平台编译器,是GUN的代表作制衣.GCC可以在多种硬体平台上编译出可执行程序,其执行效率与一般的编译器相比 ...