是否可以在WPF中为LinearGradientBrush设置动画?

时间:2010-09-09 19:29:31

标签: wpf animation storyboard keyframe lineargradientbrush

是否可以为LinearGradientBrush的StartPoint或EndPoint设置动画?如果是这样,用于动画点的Storyboard对象的类型是什么,因为当我尝试以下时我得到“0,1”不是Double的有效值,我确实意识到我不应该使用DoubleAnimationUsingKeyFrames类型。

当前代码:

<UserControl.Triggers>
    <EventTrigger RoutedEvent="UserControl.Loaded">
        <BeginStoryboard>
            <Storyboard>
                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" 
                                           Storyboard.TargetName="Path1" 
                                           Storyboard.TargetProperty="(Path.Stroke).(LinearGradientBrush.StartPoint)">
                    <SplineDoubleKeyFrame KeyTime="00:00:0" Value="0,1"/>
                    <SplineDoubleKeyFrame KeyTime="00:00:2" Value=".5,.5"/>
                    <SplineDoubleKeyFrame KeyTime="00:00:4" Value="1,0"/>
                    <SplineDoubleKeyFrame KeyTime="00:00:6" Value=".5,.5"/>
                </DoubleAnimationUsingKeyFrames>
                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" 
                                           Storyboard.TargetName="Path1" 
                                           Storyboard.TargetProperty="(Path.Stroke).(LinearGradientBrush.EndPoint)">
                    <SplineDoubleKeyFrame KeyTime="00:00:0" Value="1,0"/>
                    <SplineDoubleKeyFrame KeyTime="00:00:2" Value=".5,.5"/>
                    <SplineDoubleKeyFrame KeyTime="00:00:4" Value="0,1"/>
                    <SplineDoubleKeyFrame KeyTime="00:00:6" Value=".5,.5"/>
                </DoubleAnimationUsingKeyFrames>
            </Storyboard>
        </BeginStoryboard>
    </EventTrigger>
</UserControl.Triggers>

1 个答案:

答案 0 :(得分:2)

是。只需在上面的示例中使用“PointAnimationUsingKeyFrames”和“SplinePointKeyFrame”即可。它应该工作。