同步播放动画的最佳方式?

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())。 有一个小的闪烁,因为每个元素都是从初始位置开始的,但是它们是运行绝对同步的。