Silverlight在style.xaml中为图像添加动画

时间:2014-01-17 13:19:31

标签: c# silverlight xaml animation

我有一个显示图像的按钮。 我想在此图像中添加一个动画,以便它会闪烁(因此用户不能忽略它)。

所以我在style.xaml中尝试了这个:

<Style x:Key="WarningIcon" TargetType="Button">
        <Setter Property="Height" Value="30"/>
        <Setter Property="Width" Value="30"/>
        <Setter Property="VerticalAlignment" Value="Center"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ContentControl">
                    <Grid>
                        <Image Source="../images/im_warning.png" />
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
        <Setter Property="Visibility">
            <Setter.Value>
                <Storyboard>
                    <ObjectAnimationUsingKeyFrames
                        Storyboard.TargetProperty="(Button.Visibility)"
                          Duration="5:0:0.5"
                          RepeatBehavior="Forever"/>
                </Storyboard>
            </Setter.Value>
        </Setter>
    </Style>

但它不起作用。

我应该添加什么样的动画和设定器才能使图像闪烁,所以基本上会出现并消失?

我找不到任何与我的研究相符的例子。

谢谢。

1 个答案:

答案 0 :(得分:0)

您应该在定义后启动动画。另一件事是Opacity可能会更好看:

<Style 
    ...
    <Style.Triggers>
      <EventTrigger RoutedEvent="Image.Loaded">
        <BeginStoryboard>
          <Storyboard>
            <DoubleAnimation Storyboard.TargetProperty="(Image.Opacity)"
                             BeginTime="0:0:0" Duration="0:0:0.5"
                             From="1.0" To="0.0" RepeatBehavior="Forever" AutoReverse="True"/>

          </Storyboard>
        </BeginStoryboard>
      </EventTrigger>
    </Style.Triggers>
    ...
</Style>