我在下面的代码中有一个标签:
<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时的标签。 如果您建议使用List&lt;&gt;的代码贴上标签会更好。
答案 0 :(得分: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 );
}