使用Animation更改不透明度WPF Button属性

时间:2015-04-19 10:42:41

标签: .net wpf xaml storyboard dropshadow

我创建了一个带有投影效果的按钮。现在我想通过在运行时更改opacity属性来为此效果添加动画。但是这段代码不起作用:

<Button x:Name="btnRun" Content="Run" Click="btn_RunEventHandler" BorderThickness="1"  >
                        <Button.Effect>
                            <DropShadowEffect Color="Red"  ShadowDepth="0" BlurRadius="21"  />
                        </Button.Effect>
                        <Button.Triggers>
                            <EventTrigger RoutedEvent="Button.MouseEnter">
                                <EventTrigger.Actions>
                                    <BeginStoryboard>
                                        <Storyboard>
                                            <DoubleAnimationUsingKeyFrames
                                                Storyboard.TargetProperty="(DropShadowEffect.Opacity)"
                                                Duration="0:0:1.6"
                                                RepeatBehavior="Forever">
                                                <LinearDoubleKeyFrame KeyTime="0:0:0" Value="1"/>                                                    
                                                <LinearDoubleKeyFrame KeyTime="0:0:0.5" Value="1"/>
                                                <LinearDoubleKeyFrame KeyTime="0:0:0.55" Value="0"/>
                                                <LinearDoubleKeyFrame KeyTime="0:0:0.6" Value="1"/>
                                                <LinearDoubleKeyFrame KeyTime="0:0:0.7" Value="1"/>
                                                <LinearDoubleKeyFrame KeyTime="0:0:0.8" Value="0.6"/>
                                                <LinearDoubleKeyFrame KeyTime="0:0:1" Value="1"/>
                                                <LinearDoubleKeyFrame KeyTime="0:0:1.6" Value="1"/>
                                            </DoubleAnimationUsingKeyFrames>                                                
                                        </Storyboard>
                                    </BeginStoryboard>
                                </EventTrigger.Actions>
                            </EventTrigger>
                        </Button.Triggers>
                    </Button>

1 个答案:

答案 0 :(得分:3)

为您的DropShadow提供一些名称

<DropShadowEffect Color="Red" x:Name="dropShadow" ShadowDepth="0" BlurRadius="21"  />

Opacity

的动画TargetName
<DoubleAnimationUsingKeyFrames
    Storyboard.TargetName="dropShadow"
    Storyboard.TargetProperty="Opacity"
    .../>