2012-03-08 192 views
0

我在下面的代碼標籤:更改標籤的內容,故事板

<Window.Triggers> 
      <EventTrigger RoutedEvent="Loaded"> 
       <BeginStoryboard> 
        <Storyboard FillBehavior="Stop" > 
         <DoubleAnimation RepeatBehavior="Forever" 
        Storyboard.TargetName="Transform" 
        Storyboard.TargetProperty="X" 
        From="220" To="-1300" Duration="0:0:15" /> 
        </Storyboard> 
       </BeginStoryboard> 
      </EventTrigger> 
     </Window.Triggers> 

    <StackPanel > 
     <Label Content="Hello! your Welcome" HorizontalAlignment="Right" FontSize="11"> 
        <Label.RenderTransform> 
         <TranslateTransform x:Name="Transform" X="0" Y="0"/> 
        </Label.RenderTransform> 
     </Label> 
    </StackPanel> 

標籤移動到我的窗口,但我希望在priod再次啓動更改標籤的內容 。 如果您建議使用列表<的代碼> insted的標籤會更好。

+0

你剛纔說我,我怎樣才能改變標籤白色故事板的內容。 – 2012-03-08 08:52:56

回答

0

您可以運行一次動畫,然後在完成的事件中更改標籤的內容,然後繼續運行動畫。

您的代碼將更加緊湊,如果您將動畫的資源:

XAML:

<Window.Resources> 
    <DoubleAnimation x:Key="da" 
     Completed="DoubleAnimation_Completed" 
     From="220" To="-1300" Duration="0:0:15" 
     /> 
</Window.Resources> 

<StackPanel> 
    <Label x:Name="lbl" Content="Hello! your Welcome" HorizontalAlignment="Right" FontSize="11"> 
     <Label.RenderTransform> 
      <TranslateTransform x:Name="Transform" X="0" Y="0"/> 
     </Label.RenderTransform> 
    </Label> 
</StackPanel> 

代碼背後:

private void DoubleAnimation_Completed(object sender, EventArgs e) { 
     this.lbl.Content = "Second time"; 
     DoubleAnimation da = this.Resources[ "da" ] as DoubleAnimation; 
     TranslateTransform tr = this.Transform; 
     da.Completed -= DoubleAnimation_Completed; 
     da.RepeatBehavior = RepeatBehavior.Forever; 
     tr.BeginAnimation(TranslateTransform.XProperty, da); 
    } 

    private void Window_Loaded(object sender, RoutedEventArgs e) { 
     DoubleAnimation da = this.Resources[ "da" ] as DoubleAnimation; 
     TranslateTransform tr = this.Transform; 
     tr.BeginAnimation(TranslateTransform.XProperty, da); 
    }