Jak stworzyć kilkukrotną animację zmiany kolorów obiektu?

0

Witam

Chciałbym aby obiekt (radial gradient), który jest wypełnieniem elipsy zmienił swoją barwę z jednego koloru na drugi, później z drugiego na trzeci (...). Napisałem poniższy kod, jednak kolory zmieniają się sekundę, a ponadto wykonuje się wyłącznie ostatnia ColorAnimation. Co powinienem zmienić?

         <Storyboard x:Key="RunAnim">
            <ColorAnimation Storyboard.TargetName="e1" 
            Storyboard.TargetProperty="Fill.(GradientBrush.GradientStops)[0].(GradientStop.Color)"
            From="Red" To="Orange"/>
            <ColorAnimation Storyboard.TargetName="e1" 
            Storyboard.TargetProperty="Fill.(GradientBrush.GradientStops)[0].(GradientStop.Color)"
            To="Yellow"/>
            <ColorAnimation Storyboard.TargetName="e1" 
            Storyboard.TargetProperty="Fill.(GradientBrush.GradientStops)[0].(GradientStop.Color)"
            To="Green"/>
            <ColorAnimation Storyboard.TargetName="e1" 
            Storyboard.TargetProperty="Fill.(GradientBrush.GradientStops)[0].(GradientStop.Color)"
            To="Blue"/>
            <ColorAnimation Storyboard.TargetName="e1" 
            Storyboard.TargetProperty="Fill.(GradientBrush.GradientStops)[0].(GradientStop.Color)"
            To="Cyan"/>
        </Storyboard>

Pozdrawiam

0

Takie cuś?:
edit: Zmieniłem LinearGradientBrush na RadialGradientBrush

<Grid>
   <Rectangle Width="200" Height="100" Stroke="Black" StrokeThickness="0">
      <Rectangle.Fill>
         <RadialGradientBrush GradientOrigin="0.5,0.5" Center="0.5,0.5">
            <RadialGradientBrush.GradientStops>
               <GradientStop x:Name="GradientStop1" Color="Blue" Offset="0" />
               <GradientStop Color="White" Offset="1.0" />
            </RadialGradientBrush.GradientStops>
         </RadialGradientBrush>
      </Rectangle.Fill>
      <Rectangle.Triggers>
         <EventTrigger RoutedEvent="Rectangle.MouseLeftButtonDown">
            <BeginStoryboard>
               <Storyboard RepeatBehavior="Forever">
                  <ColorAnimation Storyboard.TargetName="GradientStop1"
                                    Storyboard.TargetProperty="Color"
                                    From="Red" To="Orange" BeginTime="0:0:0" />
                  <ColorAnimation Storyboard.TargetName="GradientStop1"
                                    Storyboard.TargetProperty="Color"
                                    To="Yellow" BeginTime="0:0:1" />
                  <ColorAnimation Storyboard.TargetName="GradientStop1"
                                    Storyboard.TargetProperty="Color"
                                    To="Green" BeginTime="0:0:2" />
                  <ColorAnimation Storyboard.TargetName="GradientStop1"
                                    Storyboard.TargetProperty="Color"
                                    To="Blue" BeginTime="0:0:3" />
                  <ColorAnimation Storyboard.TargetName="GradientStop1"
                                    Storyboard.TargetProperty="Color"
                                    To="Cyan" BeginTime="0:0:4" />
               </Storyboard>
            </BeginStoryboard>
         </EventTrigger>
      </Rectangle.Triggers>
   </Rectangle>
</Grid>
0

Animacja miała w domyśle powtórzyć się wyłącznie raz (czego, z góry przepraszam, nie wymieniłem). Udało mi się rozwiązać to w taki sposób, który zostawiam dla potomnych:

        <Storyboard x:Key="RunAnim" Duration="0:0:5">
            <ColorAnimation Storyboard.TargetName="e1" 
            Storyboard.TargetProperty="Fill.(GradientBrush.GradientStops)[0].(GradientStop.Color)"
            From="Red" To="Orange" BeginTime="0:0:0"/>
            <ColorAnimation Storyboard.TargetName="e1" 
            Storyboard.TargetProperty="Fill.(GradientBrush.GradientStops)[0].(GradientStop.Color)"
            From="Orange" To="Yellow" BeginTime="0:0:1"/>
            <ColorAnimation Storyboard.TargetName="e1" 
            Storyboard.TargetProperty="Fill.(GradientBrush.GradientStops)[0].(GradientStop.Color)"
            From="Yellow" To="Green" BeginTime="0:0:2"/>
            <ColorAnimation Storyboard.TargetName="e1" 
            Storyboard.TargetProperty="Fill.(GradientBrush.GradientStops)[0].(GradientStop.Color)"
            From="Green" To="Blue" BeginTime="0:0:3"/>
            <ColorAnimation Storyboard.TargetName="e1" 
            Storyboard.TargetProperty="Fill.(GradientBrush.GradientStops)[0].(GradientStop.Color)"
            From="Blue" To="Cyan" BeginTime="0:0:4"/>
        </Storyboard>

1 użytkowników online, w tym zalogowanych: 0, gości: 1