在WPF中完成动画时取消设置数据绑定属性

时间:2016-09-27 21:37:55

标签: wpf animation

我想在动画完成时将我的数据绑定属性IsFlashing设置为False

<Border BorderThickness="1" 
                    Height="15" 
                    Width="20" 
                    CornerRadius="2" 
                    BorderBrush="Black" 
                    DockPanel.Dock="Top" 
                    Grid.Row="1" >

        <Border.Style>
            <Style>
                <Style.Triggers>
                    <DataTrigger Binding="{Binding IsFlashing}" Value="True"  x:Name="dataTrigger">
                        <DataTrigger.EnterActions>
                            <BeginStoryboard>
                                <Storyboard FillBehavior="Stop" RepeatBehavior="1x" x:Name="startStoryBoard">                                         
                                    <ObjectAnimationUsingKeyFrames
                                            Storyboard.TargetProperty="Background"
                                            Duration="0:0:4" RepeatBehavior="1x">    
                                        <ObjectAnimationUsingKeyFrames.KeyFrames>    
                                            <DiscreteObjectKeyFrame KeyTime="0:0:1">
                                                <DiscreteObjectKeyFrame.Value>
                                                    <LinearGradientBrush>
                                                        <LinearGradientBrush.GradientStops>
                                                            <GradientStop Color="Yellow" Offset="0.0" />
                                                            <GradientStop Color="Orange" Offset="0.9" />
                                                            <GradientStop Color="Red" Offset="1.0" />
                                                        </LinearGradientBrush.GradientStops>
                                                    </LinearGradientBrush>
                                                </DiscreteObjectKeyFrame.Value>
                                            </DiscreteObjectKeyFrame>
                                        </ObjectAnimationUsingKeyFrames.KeyFrames>
                                    </ObjectAnimationUsingKeyFrames>
                                </Storyboard>
                            </BeginStoryboard>
                        </DataTrigger.EnterActions>
                        <DataTrigger.ExitActions>       
                            <!-- how can I set my bound property "IsFlashing" to false when we exit here ? -->
                        </DataTrigger.ExitActions>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Border.Style>
        <Border.Background>
            <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                <GradientStop Color="#FFFFFF" Offset="0.0"  />
                <GradientStop Color="#ADD8E6" Offset="0.9" />
                <GradientStop Color="#8aacb8" Offset="1.0" />
            </LinearGradientBrush>
        </Border.Background>
        <TextBlock Foreground="Black" Text="{Binding Path=MarkerCode}" FontFamily="Segoe UI" FontSize="12" TextAlignment="Center" VerticalAlignment="Center">
            <TextBlock.Effect>
                <DropShadowEffect ShadowDepth="0" BlurRadius="3" Color="White" />
            </TextBlock.Effect>
        </TextBlock>

</Border>

1 个答案:

答案 0 :(得分:1)

收听Completed

ObjectAnimationUsingKeyFrames事件

ExitActions是当不再满足触发条件时发生的事情(在这种情况下IsFlashing返回false时),这与动画完成时不同。