mdu*_*tra 6 wpf animation synchronization
我在一个包装面板中创建了几个usercontrol.我有一个绑定到usercontrol的视图模型,我有一个动画触发到视图模型中的属性.非常简单的切换颜色,从红色到透明,以模拟闪烁.
<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>
Run Code Online (Sandbox Code Playgroud)
这很好用.但是,由于我异步加载多个用户控件,因此闪烁的动画不会同步,因此它们会在不同的时间闪烁.现在要求屏幕上闪烁的任何内容都需要以相同的速率/时间闪烁.有没有办法同步这些动画?我似乎无法找到适合我想要完成的任何地方的例子.有没有办法使用ParallelTimeline,添加所有动画并从单个控制器启动/停止它们?任何例子如何实现这一目标?
编辑4/20在style.xaml文件中定义动画并拥有一个"全局"故事板,每个控件添加其"闪烁"动画并使主UI启动故事板会更好吗?
显然,这需要修改,但尝试颜色过渡的持续时间为 0 可能会给您带来更少的开销。但也可能不会。只是想尝试一下。
<Rectangle Name="MyRectangle" Width="100" Height="100">
<Rectangle.Fill>
<SolidColorBrush x:Name="MySolidColorBrush" Color="Blue" />
</Rectangle.Fill>
<Rectangle.Triggers>
<EventTrigger RoutedEvent="Rectangle.MouseEnter">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="MyRectangle"
Storyboard.TargetProperty="Width"
From="100" To="200" Duration="0:0:1" />
<ColorAnimation
Storyboard.TargetName="MySolidColorBrush"
Storyboard.TargetProperty="Color"
From="Blue" To="Red" BeginTime="0:0:1" Duration="0:0:0" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Rectangle.Triggers>
</Rectangle>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2317 次 |
| 最近记录: |