我可以在WPF中的Storyboard / Animation末尾设置不同的属性吗?

时间:2014-09-03 10:21:09

标签: wpf xaml animation storyboard

当我将其可见性设置为可见时,我想让图像闪烁一定次数。当它完成闪烁时,我希望它能让自己再次崩溃。

这是我正在尝试做的简单版本:

<Image Visibility="Collapsed"
       Margin="0,0,3,0"
       Width="24"
       Source="blah"
       Height="24">
  <Image.Style>
    <Style TargetType="{x:Type Image}">
      <Style.Triggers>
        <Trigger Property="Visibility"
                  Value="Visible">
          <Trigger.EnterActions>
            <BeginStoryboard>
              <Storyboard RepeatBehavior="5x"
                          x:Name="flashingStoryboard">
                <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity"
                                                Duration="0:0:1"
                                                FillBehavior="Stop">
                  <DiscreteDoubleKeyFrame Value="0"
                                          KeyTime="0:0:0" />
                  <DiscreteDoubleKeyFrame Value="1"
                                          KeyTime="0:0:0.5" />
                </DoubleAnimationUsingKeyFrames>
              </Storyboard>
            </BeginStoryboard>
          </Trigger.EnterActions>
        </Trigger>
      </Style.Triggers>
    </Style>
  </Image.Style>
</Image>

我可以在XAML中执行此操作吗?

1 个答案:

答案 0 :(得分:5)

如果您知道它会被闪烁多少次,那么您可以相应地设置BeginTime闪烁次数。

<BeginStoryboard>
       <Storyboard>
            <DoubleAnimationUsingKeyFrames RepeatBehavior="5x" Storyboard.TargetProperty="Opacity" Duration="0:0:1">
              <DiscreteDoubleKeyFrame Value="0" KeyTime="0:0:0" />
              <DiscreteDoubleKeyFrame Value="1" KeyTime="0:0:0.5" />
            </DoubleAnimationUsingKeyFrames>
            <ObjectAnimationUsingKeyFrames BeginTime="0:0:5" Duration="0:0:0" Storyboard.TargetProperty="Visibility">
              <DiscreteObjectKeyFrame Value="{x:Static Visibility.Collapsed}" />
            </ObjectAnimationUsingKeyFrames>
        </Storyboard>
</BeginStoryboard>