2016-03-28 24 views
0

我最近開始學習C#wpf。我想知道我們是否可以爲多個目標使用相同的故事板。我知道這可以用XAML來實現,但我不知道如何通過C#代碼實現它。我正在做一些事情,如故事板開始動畫,然後0-2秒一個元素完成動畫,然後從2-4秒持續時間另一個元素做它的動畫。這樣,故事板的總時長是4秒。 下面是XAML代碼我發現在網絡上,我想要做這樣的事情在C#代碼多個元素的同一個情節提要動畫

<Storyboard x:Name=」sbFlip「> 
    <DoubleAnimationUsingKeyFrames BeginTime=」00:00:00」 Storyboard.TargetName=」front」 Storyboard.TargetProperty=」(UIElement.RenderTransform).(ScaleTransform.ScaleX)「> 
     <SplineDoubleKeyFrame KeyTime=」00:00:00.2」 Value=」0「/> 
    </DoubleAnimationUsingKeyFrames> 
    <DoubleAnimationUsingKeyFrames BeginTime=」00:00:00.2」 Storyboard.TargetName=」back」 Storyboard.TargetProperty=」(UIElement.RenderTransform).(ScaleTransform.ScaleX)「> 
     <SplineDoubleKeyFrame KeyTime=」00:00:00.4」 Value=」1「/> 
    </DoubleAnimationUsingKeyFrames> 
</Storyboard> 

回答

0

讓這些都是在視圖中的三個對象:

<Rectangle x:Name="rctMovingObject1" Fill="LimeGreen" Width="50" Height="50"/> 
    <Rectangle x:Name="rctMovingObject2" Fill="Red" Width="50" Height="50" Canvas.Top="136"/> 
    <Rectangle x:Name="rctMovingObject3" Fill="Purple" Width="50" Height="50" Canvas.Top="69"/> 

您可以定義從後端的動畫,並分配給所有的人如下:

var anim = new DoubleAnimation 
    { 
    From = 1920, 
    To = 1, 
    Duration =new Duration(new TimeSpan(0,0,2))// a duration of 2 seconds 
    }; 
rctMovingObject1.BeginAnimation(Canvas.LeftProperty, anim); 
rctMovingObject2.BeginAnimation(Canvas.LeftProperty, anim); 
rctMovingObject3.BeginAnimation(Canvas.LeftProperty, anim); 

Read More...

+0

這裏的時間如何劃分?這不是故事板的必要嗎?在此先感謝 –

+0

你可以添加持續時間'持續時間=新的持續時間(新TimeSpan(0,0,2))' –

+0

啊..很好,那麼故事板呢?何時必要? –

相關問題