使用silverlight中的Storyboard实现动画效果

使用silverlight中的Storyboard实现动画效果,第1张

概述在正文开始之后,先介绍一下Storyboard, 其定义如下:      Controls animations with a timeline, and provides object and property targeting information for its child animations.       因为它用时间线(timeline)来控制,并提供了要绑定的对象和目标属性信息。

在正文开始之后,先介绍一下Storyboard,其定义如下:
     Controls animations with a timeline,and provIDes object and property targeting
information for its child animations. 

     因为它用时间线(timeline)来控制,并提供了要绑定的对象和目标属性信息。其在XAML中的
格式如下:

< Storyboard   

>
    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实现动画效果所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1034173.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存