我在包装面板中创建了几个用户控件。我有一个绑定到用户控件的视图模型,并且我有一个动画触发到视图模型中的属性。非常简单的将颜色从红色切换为透明以模拟闪烁。
<Storyboard x:Key="alertAnimation" RepeatBehavior="Forever" AutoReverse="True" >
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)"
Storyboard.TargetName="TileBorder"
BeginTime="00:00:00"
RepeatBehavior="Forever"
AutoReverse="True"
>
<DiscreteColorKeyFrame Value="Red"/>
<DiscreteColorKeyFrame KeyTime="00:00:00.500" Value="Transparent" />
</ColorAnimationUsingKeyFrames>
</Storyboard>
这工作得很好。但是,由于我异步加载多个用户控件,闪烁动画不同步,因此它们都在不同时间闪烁。现在要求屏幕上闪烁的任何东西都需要以相同的速率/时间闪烁。有没有办法同步这些动画?我似乎无法在任何地方找到适合我想要完成的示例。有没有办法使用 ParallelTimeline,将所有动画添加到其中并从单个控制器启动/停止它们?有什么例子可以做到这一点吗?
编辑 4/20 在 style.xaml 文件中定义动画并有一个“全局”故事板,每个控件都将其“闪烁”动画添加到其中并让主 UI 启动故事板会更好吗?