silverlight 故事板Storyboard
动画是快速播放一系列图像(其中每个图像与下一个图像略微不同)给人造成的一种幻觉。大脑感觉这组图像是一个变化的场景。
在silverlight中就是改变一个对象的熟悉来实现动画。比如我们2秒内渐渐改变一个按钮的高度。在silverlight中有个故事板的概念。
//创建故事板 Storyboard storyboard = new Storyboard(); //创建一个线性插值动画 From为开始值 To为结束值 Duration为变化时间 DoubleAnimation xAnimation = new DoubleAnimation() { From =Canvas.GetLeft(rectangle), To =p .X , Duration=new Duration (TimeSpan.FromSeconds(2)) } ; // 设定插值动画要执行的对象 Storyboard.SetTarget(xAnimation,rectangle); //设定插值动画要差值的属性 Storyboard.SetTargetProperty(xAnimation, new PropertyPath("(Height)")); //把插值动画添加到故事板 storyboard.Children.Add (xAnimation); //执行故事板的动画 storyboard.Begin();
1.Storyboard 可以看作用来装载动画规则的容器
2.在silverlight中可以创建一下几种动画:
属性类型 |
对应的基本 (From/To/By) 动画 |
对应的关键帧动画 |
用法示例 |
Color |
ColorAnimation |
ColorAnimationUsingKeyFrames |
对 SolidColorBrush 或 GradientStop 的 Color 进行动画处理。 |
Double |
DoubleAnimation |
DoubleAnimationUsingKeyFrames |
对 Rectangle 的 Width 或 Ellipse 的 Height(或任意 FrameworkElement)进行动画处理。 |
Point |
PointAnimation |
PointAnimationUsingKeyFrames |
对 EllipseGeometry 的 Center 位置进行动画处理。 |
Object |
无 |
ObjectAnimationUsingKeyFrames |
对 Fill 属性进行动画处理,使其在不同的 GradientBrush 之间进行转换。 |
代码中我们用了第二种动画DoubleAnimation
动画的类型分为 From/To/By动画和关键帧动画
类别 |
说明 |
命名约定 |
From/To/By 动画 |
在起始值和结束值之间进行动画处理:
此概述中的示例使用这些动画,因为这些动画最容易实现。 |
typeAnimation |
关键帧动画 |
在使用关键帧对象指定的一系列值之间播放动画。关键帧动画的功能比 From/To/By 动画的功能更强大,因为您可以指定任意多个目标值,甚至可以控制它们的插值方法。关键帧动画中详细描述了关键帧动画。 |
typeAnimationUsingKeyFrames |
3.创建完了动画后需要把要执行的动画绑定到一个对象
Storyboard.SetTarget(xAnimation,rectangle);
4.绑定到对象后要设定动画执行的对象的属性
Storyboard.SetTargetProperty(xAnimation, new PropertyPath("(Height)"));
5.把动画添加到故事板
storyboard.Children.Add (xAnimation);
6.执行动画
storyboard.Begin();