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 动画

在起始值和结束值之间进行动画处理:

  • 若要指定起始值,请设置动画的 From 属性。
  • 若要指定结束值,请设置动画的 To 属性。
  • 若要指定相对于起始值的结束值,请设置动画的 By 属性(而不是 To 属性)。

此概述中的示例使用这些动画,因为这些动画最容易实现。

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();
posted @ 2010-12-30 11:16  张巍的博客  阅读(394)  评论(0编辑  收藏  举报