2012-08-27 35 views
1

我想用StringAnimationUsingKeyFramesDiscreteStringKeyFrameWPF串動畫:最後DiscreteStringKeyFrame不執行

<TextBlock x:Name="txtStateRunning" HorizontalAlignment="Center" VerticalAlignment="Center"> 
    <TextBlock.Triggers> 
     <EventTrigger RoutedEvent="TextBlock.Loaded"> 
      <BeginStoryboard> 
       <Storyboard x:Name="textAnimation"> 
        <StringAnimationUsingKeyFrames Storyboard.TargetName="txtStateRunning" 
                  Storyboard.TargetProperty="Text" RepeatBehavior="Forever" AutoReverse="False" > 
         <DiscreteStringKeyFrame Value="Running ." KeyTime="0:0:0" /> 
         <DiscreteStringKeyFrame Value="Running .." KeyTime="0:0:0.5" /> 
         <DiscreteStringKeyFrame Value="Running ..." KeyTime="0:0:1" /> 
         <DiscreteStringKeyFrame Value="Running ...." KeyTime="0:0:1.5" /> 
        </StringAnimationUsingKeyFrames> 
       </Storyboard> 
      </BeginStoryboard> 
      </EventTrigger> 
     </TextBlock.Triggers> 
    </TextBlock> 

在代碼動畫文本框的文本我有4 * DiscreteStringKeyFrame但實際上我只看到3 *運行。時間1.5處的DiscreteStringKeyFrame未被執行。我錯過了什麼?

回答

3

這是因爲你的最後一幀開始顯示並立即被第一幀取代。

您可以在年底再增加一個DiscreteStringKeyFrame修復:

<DiscreteStringKeyFrame Value="" KeyTime="0:0:2" /> 

或通過StringAnimationUsingKeyFrames設置Duration

<StringAnimationUsingKeyFrames Duration="0:0:2" ... 
+0

Thans,我喜歡和持續時間的解決方案=。無論如何,我仍然不明白爲什麼最後一個DiscreteStringKeyFrame永遠不會執行 – Klaus78

+0

正如我所說,因爲它沒有時間顯示。您的動畫長度沒有被指定 - 然後它運行的時間只要1.5秒。所以你的最後一幀顯示0秒 - 它會立即被你的第一幀取代 – JleruOHeP