2013-08-20 73 views
1

我有以下TextBlock動畫多觸發器使用動畫

<TextBlock Text="{Binding StatusMessage}" 
        Margin="5,0,0,0" 
        Foreground="White"> 
    <TextBlock.Style> 
     <Style TargetType="TextBlock"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding IsSystemReady, 
               NotifyOnSourceUpdated=True, 
               Mode=OneWay}" 
          Value="False"> 
        <DataTrigger.EnterActions> 
         <BeginStoryboard Name="FadeOut"> 
          <Storyboard> 
           <DoubleAnimation Storyboard.TargetProperty="Opacity" 
               From="1.0" 
               To="0.0" 
               Duration="0:0:3.5"/> 
          </Storyboard> 
         </BeginStoryboard> 
        </DataTrigger.EnterActions> 
       </DataTrigger> 
       <DataTrigger Binding="{Binding IsSystemReady, 
               NotifyOnSourceUpdated=True, 
               Mode=OneWay}" 
          Value="True"> 
        <DataTrigger.EnterActions> 
         <StopStoryboard BeginStoryboardName="FadeOut" /> 
        </DataTrigger.EnterActions> 
        <Setter Property="Opacity" Value="1.0"/> 
       </DataTrigger> 
       <Trigger Property="Opacity" Value="0.0"> 
        <Setter Property="Text" Value="Ready"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </TextBlock.Style> 
</TextBlock> 

的動畫作品,但它完成時(即控制的不透明度爲0.0)我要自動返回到準備狀態狀態信息已顯示並優雅地消失後。我試圖用標準Trigger來做到這一點,但這不是解僱,爲什麼以及如何解決這個問題?

謝謝你的時間。

+0

因此,當不透明度爲0.0時,您希望將'StatusMessage'更改爲'Ready'? –

+0

是的,我想自動這個,我也想'StatusMessage'屬性也改變。 – MoonKnight

回答

1

Trigger不點火,因爲Opacity屬性仍是由動畫鎖定,但你可以,如果你想使用一個ObjectAnimation使用動畫來改變Text值。

實施例:

<BeginStoryboard Name="FadeOut"> 
    <Storyboard > 
     <DoubleAnimation Storyboard.TargetProperty="Opacity" From="1.0" To="0.0" Duration="0:0:3.5"/> 
     <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Text" BeginTime="0:0:3.5" > 
      <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Ready" /> 
     </ObjectAnimationUsingKeyFrames> 
     <DoubleAnimation Storyboard.TargetProperty="Opacity" From="1.0" To="1.0" BeginTime="0:0:3.5"/> 
    </Storyboard> 
</BeginStoryboard> 

但是設定在動畫的TextReady不會在StatusMessage屬性設置爲Ready

+0

我想更新'StatusMessage',這可能嗎?爲什麼我的方法不起作用?再次感謝你的幫助... – MoonKnight