如何每次触发故事板

时间:2015-06-29 23:50:19

标签: wpf animation datatrigger

我有一个故事板,可以将图像设置为可见,然后在几秒钟内将图像淡入淡出。当属性IsSaveDiskVisible设置为true时,会触发故事板。当各种文本框失去焦点时,IsSaveDiskVisible被设置为true。

故事板第一次工作时,其中一个文本框失去焦点并将IsSaveDiskVisible设置为true。但是,后续尝试丢失焦点的文本框不会触发故事板,因为IsSaveDiskVisible已设置为true。

每当任何文本框失去焦点时,如何触发故事板?

<Image x:Name="imgDiskBlack" Source="{Binding SaveDiskImg}" Stretch="None" Margin="4,0,0,0" Visibility="Collapsed">
    <Image.Style>
        <Style>
            <Style.Triggers>
                <DataTrigger Binding="{Binding IsSaveDiskVisible}" Value="true">
                    <DataTrigger.EnterActions>
                        <BeginStoryboard>
                            <Storyboard>
                                <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility">
                                    <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{x:Static Visibility.Visible}" />
                                    <DiscreteObjectKeyFrame KeyTime="0:0:2.5" Value="{x:Static Visibility.Collapsed}" />
                                </ObjectAnimationUsingKeyFrames>
                                <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity">
                                    <SplineDoubleKeyFrame KeyTime="0:0:1" Value="0.0" />
                                    <SplineDoubleKeyFrame KeyTime="0:0:2" Value="1.0" />
                                </DoubleAnimationUsingKeyFrames>
                            </Storyboard>
                        </BeginStoryboard>
                    </DataTrigger.EnterActions>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Image.Style>
</Image>

1 个答案:

答案 0 :(得分:1)

如果它绑定到IsSaveDiskVisible,那么每当用户更改任何属性时,都不能设置IsSaveDiskVisible = false吗?我假设您正在尝试淡化磁盘映像以显示该文件正在保存或类似的东西。如果是这样,您可以在有人进行更改后重置属性(以便他们可以单击按钮并保存更改),或者在保存方法结束时重置它。