我有一个DataGridRow样式,其中包括以下两个组件:
<!-- On Click, play a brief 'flash' animation on Row -->
<DataTrigger Binding="{Binding IsMine}" Value="1">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<StaticResource ResourceKey="AnimationSuccessful"/>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
<Storyboard x:Key="AnimationSuccessful">
<ColorAnimation From="#66218ffe"
To="#22218ffe"
Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)"
FillBehavior="HoldEnd"
Duration="0:0:0.6" />
</Storyboard>
<!-- Highlight row on Mouse Over -->
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsMine}" Value="1" />
<Condition Binding="{Binding IsMouseOver, RelativeSource={RelativeSource Self}}" Value="true" />
</MultiDataTrigger.Conditions>
<Setter Property="Background" Value="#44218ffe" />
<Setter Property="Foreground" Value="Gray" />
</MultiDataTrigger>
第一种样式在用户单击时在DataGridRow上播放简短的“确认”动画。第二种样式是当用户将鼠标悬停在DataGridRow上时突出显示它。
这里的问题是,当用户单击行时,它将播放第一个动画,但由于触发MouseOver效果而立即将其取消。我不确定如何确保第一个动画播放完毕,因此最终看起来像傻瓜。
在让第二种样式接管之前,如何强制第一个动画播放完成?