同步播放动画的最佳方式?
Best way to play animations synchronously?
只要用户触发,我的应用程序就会从网络上下载数据。用户可以触发多次下载。
每次下载都列在堆栈面板中,下载时旋转的每个项目上都显示一个忙碌的图标。
<Image x:Name="rotatingCircle" Source="{StaticResource busy_icon}" Height="30" RenderTransformOrigin=".5,.5" Visibility="Visible">
<Image.RenderTransform>
<RotateTransform x:Name="AnimatedRotateTransform" Angle="0" />
</Image.RenderTransform>
<Image.Style>
<Style>
<Style.Triggers>
<Trigger Property="Image.IsEnabled" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="RenderTransform.Angle"
From="0"
To="360"
Duration="0:0:1"
RepeatBehavior="Forever"/>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
如何同步动画,使每个圆都以相同的角度旋转,而不管它何时开始?
在我的例子中,将故事板存储在列表中就足够了。每次添加动画图标时,我都会简单地遍历所有故事板并重新启动它们 (sb.Begin())。
有一个小的闪烁,因为每个元素都是从初始位置开始的,但是它们是运行绝对同步的。
只要用户触发,我的应用程序就会从网络上下载数据。用户可以触发多次下载。 每次下载都列在堆栈面板中,下载时旋转的每个项目上都显示一个忙碌的图标。
<Image x:Name="rotatingCircle" Source="{StaticResource busy_icon}" Height="30" RenderTransformOrigin=".5,.5" Visibility="Visible">
<Image.RenderTransform>
<RotateTransform x:Name="AnimatedRotateTransform" Angle="0" />
</Image.RenderTransform>
<Image.Style>
<Style>
<Style.Triggers>
<Trigger Property="Image.IsEnabled" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="RenderTransform.Angle"
From="0"
To="360"
Duration="0:0:1"
RepeatBehavior="Forever"/>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
如何同步动画,使每个圆都以相同的角度旋转,而不管它何时开始?
在我的例子中,将故事板存储在列表中就足够了。每次添加动画图标时,我都会简单地遍历所有故事板并重新启动它们 (sb.Begin())。 有一个小的闪烁,因为每个元素都是从初始位置开始的,但是它们是运行绝对同步的。