Windows Phone开发(37):动画之ColorAnimation
原文:Windows Phone开发(37):动画之ColorAnimation
上一节中我们讨论了用double值进行动画处理,我们知道动画是有很多种的,今天,我向大家继续介绍一个动画类——ColorAnimation。
其实,它和DoubleAnimation也是很像,毕竟所谓动画,无非就是在特定的时间段内,把一个值变为另一个值的一种过度形式。故ColorAnimation就是用于颜色过度动画的。其中,以下几个属性我们只需简单关注一下即可:
1、By:相对于初始值所更改的值的总量。这个属性比较不好理解,所以我把它放到第一位,说实话,这种用颜色表示的值确实不好理解。我们不妨用DoubleAnimation的By属性来理解它,原理是一样的。举个例子,如果一个按钮的宽度Width的值为200,现在我对它进行动画处理,我把By设置为150,那么,你猜一下,动画的最终值是多少?不用猜,计算一下,既然By表示的是变化的总量,也就是 200 + 150 = ?,这结果不用我告诉你了吧,小学生级别的,你应该会计算的。
好的,再举一个例子如何,比如A类的某依赖项属性X的初始值为300,现在多要对它进行动画处理,我将By设置为-100,动画最终的值 = 300 - 100,这个会算了吧。
2、From:这个好理解 了,就是动画开始时的值,比如,我希望动画效果是,矩形的背景从红色变成蓝色,那么,From的值是不是Red啊?估计不用我给你答案了,你懂的。
3、To:与From相对,就是动画结束时的值,像上面的例子,从红色变成蓝色,也就是说,From = Red,To = Blue 。
好了,上面的内容大概了解一下可以了,千万不要背下来啊,编程是不能背书的,实在不记得了就查文档,查资料, 不能背。不要被砖家误导了。
现在我们可以开始干活了,来,跟着伴奏音乐,一起唱……
First,新建一个WP应用程序项目。
Second,这一步,没什么的,把以下的XAML代码干完,注意理解,不是叫你打字练习啊。
<Grid>
<Rectangle Margin="80,150">
<Rectangle.Fill>
<SolidColorBrush x:Name="sb" Color="Green"/>
</Rectangle.Fill>
</Rectangle>
<Grid.Resources>
<Storyboard x:Name="std">
<ColorAnimation
Duration="0:0:1"
Storyboard.TargetName="sb"
Storyboard.TargetProperty="Color"
From="Red"
To="Blue"
RepeatBehavior="Forever"/>
</Storyboard>
</Grid.Resources>
</Grid>
使用RepeatBehavior="Forever"是为了能让动画不断循环播放,如果你希望重复3次就设置为3了,Forever就是永久重复。
别忘了在后台代码中启动动画。
public MainPage()
{
InitializeComponent();
this.Loaded += (sender, e) => { std.Begin(); };
}
现在,你运行应用程序,你会看到很精彩的东西,比《西施秘史》还要精彩。
按照我的习惯,一个例子是不够的,想不想来一个更爽的?如果你想,就继续;如果你不想,请拔掉电脑电源。
接下来我们做一个对渐变画填充进行颜色动画处理,上面的例子,只是针对单色画刷,下面我们干渐变的。
<Grid>
<Ellipse HorizontalAlignment="Center"
VerticalAlignment="Center"
Width="400" Height="400">
<Ellipse.Fill>
<RadialGradientBrush Center="0.5,0.5"
RadiusX="0.5"
RadiusY="0.5">
<GradientStop x:Name="g1" Color="Yellow" Offset="0"/>
<GradientStop x:Name="g2" Color="Green" Offset="0.5"/>
<GradientStop x:Name="g3" Color="Red" Offset="1"/>
</RadialGradientBrush>
</Ellipse.Fill>
</Ellipse>
<Grid.Resources>
<Storyboard x:Name="std">
<ColorAnimation
Duration="0:0:2"
Storyboard.TargetName="g1"
Storyboard.TargetProperty="Color"
From="LightBlue" To="Green"
RepeatBehavior="Forever"/>
<ColorAnimation
Duration="0:0:3"
Storyboard.TargetName="g2"
Storyboard.TargetProperty="Color"
From="Orange" To="Snow"
RepeatBehavior="Forever"/>
<ColorAnimation
Duration="0:0:1"
Storyboard.TargetName="g3"
Storyboard.TargetProperty="Color"
From="Yellow" To="Red"
RepeatBehavior="Forever"/>
</Storyboard>
</Grid.Resources>
</Grid>
后台代码还是不能忘,不然就启动不了动画了。
public Page1()
{
InitializeComponent();
this.Loaded += (sender, e) => { std.Begin(); };
}
现在,你运行一下,保证比上面的精彩,管你信不信,反正你运行一下就会信了。
Windows Phone开发(37):动画之ColorAnimation的更多相关文章
- Windows Phone开发(42):缓动动画
原文:Windows Phone开发(42):缓动动画 前面在讨论关键帧动画的时候,我有意把几个带缓动动画的关键帧动画忽略掉,如EasingColorKeyFrame.EasingDoubleKeyF ...
- Windows Phone开发(41):漫谈关键帧动画之下篇
原文:Windows Phone开发(41):漫谈关键帧动画之下篇 也许大家已经发现,其实不管什么类型的动画,使用方法基本是一样的,不知道大家总结出规律了没有?当你找到规律之后,你会发现真的可以举一反 ...
- Windows Phone开发(38):动画之PointAnimation
原文:Windows Phone开发(38):动画之PointAnimation PointAnimation也是很简单的,与前面说到的两个Animation是差不多的,属性也是一样的,如By.Fro ...
- Windows Phone开发(40):漫谈关键帧动画之中篇
原文:Windows Phone开发(40):漫谈关键帧动画之中篇 一.DiscreteDoubleKeyFrame 离散型关键帧动画,重点,我们理解一下"离散"的意思,其实你查一 ...
- Windows Phone开发(39):漫谈关键帧动画上篇
原文:Windows Phone开发(39):漫谈关键帧动画上篇 尽管前面介绍的几种动画会让觉得很好玩了,但是,不知道你是否发现,在前面说到的一系列XXXAnimation中,都有一个共同点,那就是仅 ...
- Windows Phone开发(36):动画之DoubleAnimation
原文:Windows Phone开发(36):动画之DoubleAnimation 从本节开始,我们将围绕一个有趣的话题展开讨论--动画. 看到动画一词,你一定想到Flash,毕竟WP应用的一个很重要 ...
- Windows Store App 过渡动画
Windows Store App 过渡动画 在开发Windows应用商店应用程序时,如果希望界面元素进入或者离开屏幕时显得自然和流畅,可以为其添加过渡动画.过渡动画能够及时地提示用户屏幕所发 ...
- Windows Phone开发(46):与Socket有个约会
原文:Windows Phone开发(46):与Socket有个约会 不知道大家有没有"谈Socket色变"的经历?就像我一位朋友所说的,Socket这家伙啊,不得已而用之.哈,S ...
- Windows Phone开发(43):推送通知第一集——Toast推送
原文:Windows Phone开发(43):推送通知第一集--Toast推送 好像有好几天没更新了,抱歉抱歉,最近"光荣"地失业,先是忙于寻找新去处,唉,暂时没有下文.而后又有一 ...
随机推荐
- uva 11732 - strcmp() Anyone? 不错的Trie题
题解:http://blog.csdn.net/u013480600/article/details/23122503 我的代码一直TLE,,,看了人家的之后,认为1.链式前向星比較好,2.*dept ...
- hdu 4778 Rabbit Kingdom(减少国家)
题目链接:hdu 4778 Rabbit Kingdom 题目大意:Alice和Bob玩游戏,有一个炉子.能够将S个同样颜色的宝石换成一个魔法石.如今有B个包,每一个包里有若干个宝石,给出宝石的颜色. ...
- Trufun云端建模平台之云端UML工具发布
Trufun云端建模平台包括云端UML工具,云端BPMN工具,云端思维导图工具. 云端UML工具是目前最先进的基于HTML5的UML2.x建模工具,所有代码基于JAVA开发,支持类图.用例图.活动图. ...
- 如何在github中贡献自己的力量
如何参与github的开源项目? 1.找一个发出“pull requests”的项目.有以下几个方法:最简单的方式是,读项目的readme文件.它会告诉你,项目的拥有者是否急切的需要协助.如果read ...
- 复制文件时,如何显示进度条(使用BlockRead函数读取数据,并插入application.ProcessMessages)
procedure mycopyfile(sourcef,targetf:string;i:integer); var FromF,ToF:file; NumRead,NumWritten:Integ ...
- java之jvm学习笔记四(安全管理器)
java之jvm学习笔记四(安全管理器) 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...
- BT5 firefox Flash插件问题
今天在BT下安装了Nessus,好不容易安装好了,注册成功,本以为大功告成,但是在最后关头,却出现一个“未安装flash插件”错误,在bT下尝试着安装flahs插件,蛋碎一地,,,没能解决. 我的BT ...
- libuv 与 libev 的对比
libuv 与 libev 的对比 libuv 与 libev 的对比 05 January 2013 libuv 和 libev ,两个名字相当相近的 I/O Library,最近有幸用两个 Lib ...
- 2013 吉林通化邀请赛 Play Game 记忆化搜索
dp[ba][ta][bb][tb]表示a堆牌从下面拿了ba张,从上面拿了ta张.b堆牌从下面拿了bb张,从上面拿了tb张.当前玩家能得到的最大的分数. 扩展方式有4种,ba+1,ta+1,bb+1, ...
- UVA 10892 LCM Cardinality(数论 质因数分解)
LCM Cardinality Input: Standard Input Output: Standard Output Time Limit: 2 Seconds A pair of number ...