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):“位于左侧窗格如同文件夹图 ...
随机推荐
- 【练习】创建私有的dblink
1.创建dblink第一种方法,是在本地数据库tnsnames.ora文件中配置了要远程访问的数据库. .设置监听: ①[root@host02 ~]# vi /etc/hosts 添加:[IP和名字 ...
- 【测试】手工搭建DG
前言:(一)准备工作: 1.数据库要处于归档模式: 2.监听参数:local_listener 默认值为空--1521 3.关闭闪回(可能会触发数据库的bug,备库不能开闪回) 4.如果有外部表,外部 ...
- visio2007无法拖动
连按两下键盘上的 “Esc” 键
- 华为OJ平台——计算字符串的相似度
题目描述: 对于不同的字符串,我们希望能有办法判断相似程度,我们定义了一套操作方法来把两个不相同的字符串变得相同,具体的操作方法如下: 1 修改一个字符,如把“a”替换为“b”. 2 增加一个字符,如 ...
- WebLogic集群案例分析
WebLogic集群案例分析 2012年8月,某证券交易系统(采用Weblogic中间件),由于基金业务火爆,使系统压力太大,后台服务器频繁死机时,这时工程师们紧急调试系统及恢复操作,等完成这些操作花 ...
- MongoDB 2: 安装和使用
导读:上篇博客中简单介绍了MongoDB,本篇文章主要是介绍Mongo的安装和使用(环境为win8).(PS:这是一篇没什么技术含量的文章,仅是个人的笔记式文档)下一篇博客,将介绍Mongo使用过程中 ...
- CLRS:Insert sort in in c
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<time.h>#define ...
- js 函数function的几种形式
//有的时候我们一直都在使用函数,但是却不知道函数使用的正真含义 //其中一个重要的目的是为了提高代码的复用率 //其二函数可以传递参数并有返回值 //函数声明 //不带参数,不带返回值 functi ...
- EasyUI学习笔记
1,tabs获得被选中的标题 var tabTitle = $('#tabs').tabs('getSelected').panel('options').title;//获得被选中的标题 2.当设置 ...
- Loadrunner:安装LR11时提示缺少vc2005_sp1_with_atl_fix_redist
[问题现象] 安装LR11时提示缺少vc2005_sp1_with_atl_fix_redist: [解决办法] 手动安装缺少的组件,LR安装包中已自带该组件,为何不自动捕捉异常去获取该自带的组件去安 ...