2010-09-09 136 views
2

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

目前代码:

<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> 

回答

2

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

+0

谢谢。这工作完美。 – 2010-09-09 20:13:09

相关问题