2010-03-21 62 views
7

我想在一個標籤上做一個動畫序列,例如,首先做值不透明的動畫從0到1,反之亦然,只是在不透明度動畫,不在前景動畫之前。我想在XAML代碼中完成它,然後從C#代碼開始並完成de動畫。哪種做法最好,最有效?XAML C#WPF最有效的方法來做一個有序的動畫序列

歡迎各位回覆!

在此先感謝。

回答

12

最簡單的方法是使用合適的BeginTimeDuration屬性在單個故事板中定義整個動畫。這樣整個動畫可以作爲一個單元開始和停止,但是你可以有不同的序列。

例如:

<Storyboard Duration="0:00:06"> 
    <DoubleAnimation Duration="0:0:4" Storyboard.TargetName="gear1RotateTransform" Storyboard.TargetProperty="Angle" From="-600" To="0"/> 
    <DoubleAnimation Duration="0:0:4" Storyboard.TargetName="gear2RotateTransform" Storyboard.TargetProperty="Angle" From="600" To="0"/> 
    <DoubleAnimation Duration="0:0:4" Storyboard.TargetName="gear3RotateTransform" Storyboard.TargetProperty="Angle" From="-600" To="0"/> 
    <DoubleAnimation BeginTime="0:0:1" Duration="0:00:02" Storyboard.TargetName="firstLetter" Storyboard.TargetProperty="Opacity" From="0.0" To="1.0"/> 
    <DoubleAnimation BeginTime="0:0:2" Duration="0:00:02" Storyboard.TargetName="secondLetter" Storyboard.TargetProperty="Opacity" From="0.0" To="1.0"/> 
    <DoubleAnimation BeginTime="0:0:3" Duration="0:00:02" Storyboard.TargetName="thirdLetter" Storyboard.TargetProperty="Opacity" From="0.0" To="1.0"/> 
    <DoubleAnimation BeginTime="0:0:4" Duration="0:00:02" Storyboard.TargetName="siteLink" Storyboard.TargetProperty="Opacity" From="0.0" To="1.0"/> 
    <DoubleAnimation BeginTime="0:0:4" Duration="0:00:02" Storyboard.TargetName="siteLinkTop" Storyboard.TargetProperty="Opacity" From="0.0" To="1.0"/> 
</Storyboard> 

此故事板改變在3旋轉的值變換爲第4秒,但對firstLetter項目的不透明度不開始改變,直到一秒後已經過去和它只運行2秒。 siteLinksiteLinkTop元素在4秒後沒有改變其透明度(並且齒輪旋轉動畫已經完成)。

相關問題