在正文开始之后,先介绍一下Storyboard,其定义如下:
Controls animations with a timeline,and provIDes object and property targeting
information for its child animations.
因为它用时间线(timeline)来控制,并提供了要绑定的对象和目标属性信息。其在XAML中的
格式如下:
oneOrMoreChildTimelines
</ Storyboard >
其中的oneOrMoreChildTimelines可以是如下任一或多个对象元素:
Storyboard,colorAnimation,colorAnimationUsingKeyFrames,DoubleAnimation,
DoubleAnimationUsingKeyFrames,PointAnimation,PointAnimationUsingKeyFrames
下面就其中几个主要的元素作如下演示说明,首先请看“DoubleAnimation”:
DoubleAnimation:当动画值的变化(FROM ...TO...)类型是 Double型时使用。
下面演示的就是矩形(MyAnimatedRectangle)的“Opacity”(透明度)属性在一秒内从1到0
的动画(参数说明见注释)。
< StackPanel >
< StackPanel.Resources >
<!-- 将Storyboard 放入Resources中是为了更方便的在代码中引用 Storyboard 以及进行互 *** 作,如
start, stop, pause,和恢复Storyboard. -->
< Storyboard x:name ="myStoryboard" >
< DoubleAnimation
Storyboard.Targetname ="MyAnimatedRectangle"
Storyboard.TargetProperty ="Opacity"
From ="1.0"
To ="0.0"
Duration ="0:0:1"
autoReverse ="True"
RepeatBehavior ="Forever" />
</ Storyboard >
</ StackPanel.Resources >
<!-- 参数说明:
Storyboard.Targetname:附加属性 *** 作到指定的对象上;
Storyboard.TargetProperty:要 *** 作指定对象的属性;
From..To :上述属性值的起始范围;
Duration: 在多少时间内完成上述属性值的变化;
autoReverse:是否在vanishes 之后 fade back 到初始状态;
RepeatBehavior:指示当前animation 不断反复
-->
< Rectangle MouseleftbuttonDown ="Mouse_Clicked"
x:name ="MyAnimatedRectangle"
WIDth ="100" Height ="100" Fill ="Blue" />
</ StackPanel >
colorAnimation:当动画值的变化(FROM ...TO...)类型是 color型时使用。
下面演示的是myStackPanel背景色在4秒内从红到绿的动画。
< StackPanel x:name ="myStackPanel" Background ="Red" GrID.Row ="0"
Loaded ="Start_Animation" >
< TextBlock Foreground ="White" > 使用层级方式绑定TargetProperty: </ TextBlock >
< StackPanel.Resources >
< Storyboard x:name ="colorStoryboard" >
< colorAnimation BeginTime ="00:00:00" Storyboard.Targetname ="myStackPanel"
Storyboard.TargetProperty ="(Panel.Background).(SolIDcolorBrush.color)"
From ="Red" To ="Green" Duration ="0:0:4" />
</ Storyboard >
</ StackPanel.Resources >
</ StackPanel >
下面XAML代码与上面所示的实现效果相同:
< StackPanel Loaded ="Start_Animation" >
< TextBlock Foreground ="White" > 普通方式绑定TargetProperty: </ TextBlock >
< StackPanel.Resources >
< Storyboard x:name ="colorStoryboard2" >
< colorAnimation BeginTime ="00:00:00" Storyboard.Targetname ="mySolIDcolorBrush"
Storyboard.TargetProperty ="color" From ="AliceBlue" To ="Green" Duration ="0:0:4" FillBehavior ="Stop" />
</ Storyboard >
</ StackPanel.Resources >
< StackPanel.Background >
< SolIDcolorBrush x:name ="mySolIDcolorBrush" color ="AliceBlue" />
</ StackPanel.Background >
</ StackPanel >
接下来是PointAnimation: 当动画值的变化(FROM ...TO...)类型是 Point型时使用。
下面的XAML演示的是EllipseGeometry对象从point(20,200)移动到point(400,100)的动画。
< PointAnimation Storyboard.TargetProperty ="Center"
Storyboard.Targetname ="MyAnimatedEllipseGeometry"
Duration ="0:0:5"
From ="20,200"
To ="400,100"
RepeatBehavior ="Forever" />
</ Storyboard >
</ Canvas.Resources >
< Path Fill ="Blue" >
< Path.Data >
<!-- Describes an ellipse. -->
< EllipseGeometry x:name ="MyAnimatedEllipseGeometry"
Center ="20,20" RadiusX ="15" RadiusY ="15" />
</ Path.Data >
</ Path > 总结
以上是内存溢出为你收集整理的使用silverlight中的Storyboard实现动画效果全部内容,希望文章能够帮你解决使用silverlight中的Storyboard实现动画效果所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)