微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Silverlight利用故事板设计闪烁的动画

图片78x37,每个泡的宽度是26
利用Image的触发事件EventTrigger来响应故事板

代码

<Canvas Height="37" Width="78" Clip="M0,0 L26,37 L0,37 z">
 <Image x:Name="img" Source="images/popo.png" Stretch="None" RenderTransformOrigin="0.5,0.5" >
   <Image.Triggers>
     <EventTrigger RoutedEvent="Image.Loaded">
       <EventTrigger.Actions>
         <BeginStoryboard>
          <Storyboard RepeatBehavior="Forever">
            <DoubleAnimationUsingKeyFrames Storyboard.TargetName="img" 
		Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" >
              <discreteDoubleKeyFrame KeyTime="00:00:00" Value="0"/>
              <discreteDoubleKeyFrame KeyTime="0:0:0.5" Value="-26" />
              <discreteDoubleKeyFrame KeyTime="0:0:1" Value="-52" />
              <discreteDoubleKeyFrame KeyTime="00:00:1.5" Value="-52"/>
            </DoubleAnimationUsingKeyFrames>
          </Storyboard>
        </BeginStoryboard>
      </EventTrigger.Actions>
    </EventTrigger>
   </Image.Triggers>
     
   <Image.RenderTransform>
     <CompositeTransform/>
   </Image.RenderTransform>
 </Image>
</Canvas>

注:Canvas中的Clip是剪切遮盖,这个故事板的作用是让图片在一定的时间里以X轴方向移动,运行项目就能看到效果
 
另一种方式是把故事板写在Resources里,然后通过事件激发故事板运行

<UserControl.Resources>
  <Storyboard x:Name="popoImg" RepeatBehavior="Forever">
    <DoubleAnimationUsingKeyFrames Storyboard.TargetName="popo" 
	Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" >
      <discreteDoubleKeyFrame KeyTime="00:00:00" Value="0"/>
      <discreteDoubleKeyFrame KeyTime="0:0:0.5" Value="-26" />
      <discreteDoubleKeyFrame KeyTime="0:0:1" Value="-52" />
      <discreteDoubleKeyFrame KeyTime="00:00:1.5" Value="-52"/>
    </DoubleAnimationUsingKeyFrames>
  </Storyboard>
</UserControl.Resources>
<Canvas Height="37" Width="78" Clip="M0,37 z" >
  <Image x:Name="popo" Source="images/popo.png" Stretch="None" RenderTransformOrigin="0.5,0.5" >
    <Image.RenderTransform>
      <CompositeTransform/>
    </Image.RenderTransform>
  </Image>
</Canvas>

事件里写上popoImg.Begin(); 参考: 故事板storyboard实现动画效果:http://www.cnblogs.com/crazypig/archive/2012/02/21/2361552.html silverlight 动画详解:http://www.cnblogs.com/Gyoung/p/3632249.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐