2013-10-30 44 views
0

我想用storyboard API开发使用C#动画的动画。动画的目的是我有一个画布。在这个画布内部,我将根据一些特定的逻辑在运行时放置不同的图像。然而,与此同时,我不希望这个画布仍然是一个枯燥乏味的UI,所以我想做一些动画,只要游戏运行,它就会永久播放。我可以这样做吗?如何在画布中创建浮动动画WP8

<Canvas x:Name="GameCanvas" Height="480" Width="480" Background="white" VerticalAlignment="Top" Loaded="GameCanvas_Loaded" > 
      <Canvas.Resources> 
       <Storyboard x:Name="myStoryboard"> 
      </Canvas.Resources> 
      <Image x:Name="PreviewImage" Height="480" Width="480" Opacity="1" RenderTransformOrigin="0.2,0.5" > 
       <Image.RenderTransform> 
        <TransformGroup> 
         <RotateTransform x:Name="AnimatedRotateTransform" Angle="0" /> 
         <CompositeTransform x:Name="TransRotate" /> 
        </TransformGroup> 
       </Image.RenderTransform> 
      </Image> 
     </Canvas> 

如果是的话,请帮助我指导如何开始做到这一点。在画布内部,我想放置一些将永远执行的动画。例如,我可以放一些五颜六色的按钮,这个按钮将浮在画布上,从一个位置移动到另一个位置。

回答

1

您应该阅读关于动画,我推荐http://www.microsoft.com/en-us/download/details.aspx?id=24519。 如果你想动画: 首先定义故事板,在对象的合适性上添加动画(双动画,使用关键帧的双动画,对象动画,彩色动画等) 然后添加关键帧并在代码中运行动画或使用触发器。

<Rectangle Fill="Azure" Height="50" Width="50" Name="Rect1"> 
    <Rectangle.Resources> 
     <Storyboard x:Key="Animation" > 
      <DoubleAnimationUsingKeyFrames Storyboard.TargetName="Transform" 
            Storyboard.TargetProperty="X" 
            RepeatBehavior="Forever" 
            AutoReverse="True"  > 

       <LinearDoubleKeyFrame KeyTime="0:0:02" Value="100" /> 
       <LinearDoubleKeyFrame KeyTime="0:0:02" Value="0" /> 
      </DoubleAnimationUsingKeyFrames> 
      <DoubleAnimationUsingKeyFrames Storyboard.TargetName="Transform" 
            Storyboard.TargetProperty="Y" 
            RepeatBehavior="Forever" 
              AutoReverse="True"> 

       <LinearDoubleKeyFrame KeyTime="0:0:01" Value="100" /> 
       <LinearDoubleKeyFrame KeyTime="0:0:01" Value="0" /> 
      </DoubleAnimationUsingKeyFrames> 
     </Storyboard> 
    </Rectangle.Resources> 
    <Rectangle.RenderTransform> 
     <TranslateTransform x:Name="Transform"/> 
    </Rectangle.RenderTransform> 
</Rectangle> 

//in code behind 
(Rect1.Resources["Animation"] as Storyboard).Begin(); 

上面的代码将使矩形缓慢地从开始点移动到100并返回到0等等,直到所有的永恒。

//更新 - CODE编辑

所以,如果我理解不错,你想要的东西漂浮。只需设置Y和X的动画效果,Y比X快,您可以使用样条框或缓动框,并自定义此动画。

+0

谢谢你的代码。这段代码可以工作,我也知道一些动画,但是我想要做的浮动动画,我不知道如何实现。你可以引导我的代码。 – Debhere

+0

我编辑了代码,我认为,如果您从我的链接中阅读本书,您将会知道如何去做你所需要的。 – quirell

0

如果您使用C++/CX代码进行开发,则可以通过此方式运行动画。

​​