2010-09-09 37 views
2

Est-il possible d'animer le point de départ ou l'extrémité d'un LinearGradientBrush? Si oui, quel est le type de l'objet Storyboard utilisé pour animer les Points, comme quand j'essaie ce qui suit, je reçois "0,1" n'est pas une valeur valide pour Double, et je réalise que je ne devrais pas utiliser DoubleAnimationUsingKeyFrames type.Est-il possible d'animer un LinearGradientBrush dans WPF?

Code actuel:

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

Répondre

2

Oui. Utilisez juste "PointAnimationUsingKeyFrames" et "SplinePointKeyFrame" dans votre exemple ci-dessus. Ça devrait marcher.

+0

Merci. Cela a fonctionné parfaitement. –