2013-10-30 41 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代碼進行開發,則可以通過此方式運行動畫。

​​