'MouseOver'样式取消了'Click'动画-WPF

时间:2018-06-19 16:39:14

标签: c# wpf storyboard styles datatrigger

我有一个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效果而立即将其取消。我不确定如何确保第一个动画播放完毕,因此最终看起来像傻瓜。

在让第二种样式接管之前,如何强制第一个动画播放完成?

0 个答案:

没有答案