2009-12-01 118 views
1

我有以下XAML显示旋转EllipseWPF动画不播放

<Ellipse x:Name="ellipse" 
     Stroke="{StaticResource _SpinnerGradientBrush}" 
     StrokeThickness="20"     
     RenderTransformOrigin="0.5,0.5"> 
    <Ellipse.RenderTransform> 
     <TransformGroup> 
      <RotateTransform Angle="0" /> 
     </TransformGroup> 
    </Ellipse.RenderTransform> 
    <Ellipse.Triggers> 
     <EventTrigger RoutedEvent="Ellipse.Loaded"> 
      <BeginStoryboard> 
       <Storyboard> 
        <DoubleAnimationUsingKeyFrames 
          Storyboard.TargetName="ellipse" 
          Storyboard.TargetProperty="(Ellipse.RenderTransform).(RotateTransform.Angle)" 
          Duration="0:0:4" 
          RepeatBehavior="Forever"> 
         <LinearDoubleKeyFrame Value="0" KeyTime="0:0:0" /> 
         <LinearDoubleKeyFrame Value="359" KeyTime="0:0:4" /> 
        </DoubleAnimationUsingKeyFrames> 
       </Storyboard> 
      </BeginStoryboard> 
     </EventTrigger> 
    </Ellipse.Triggers> 
</Ellipse> 

窗口将显示为预期,但从未启动动画。我曾在Blend中工作,但由于某种原因,在我的应用程序中实际使用xaml时无法正常工作。如果有人有任何想法,我会很感激。

回答

0

删除<的TransformGroup >标签,你只需要:

<Ellipse.RenderTransform> 
    <RotateTransform Angle="0" /> 
</Ellipse.RenderTransform> 

另外一个名称分配给RotateTransform要动画和目标是在动画(改为DoubleAnimation是因为它是短):

<Ellipse.RenderTransform> 
    <TransformGroup> 
     <RotateTransform Angle="0" x:Name="ellipseRotateTransform" /> 
    </TransformGroup> 
</Ellipse.RenderTransform> 
<Ellipse.Triggers> 
    <EventTrigger RoutedEvent="Ellipse.Loaded"> 
     <BeginStoryboard> 
      <Storyboard> 
       <DoubleAnimation 
        Storyboard.TargetName="ellipseRotateTransform" 
        Storyboard.TargetProperty="Angle" 
        From="0" To="359" 
        Duration="0:0:4" 
        RepeatBehavior="Forever"> 
       </DoubleAnimation> 
      </Storyboard> 
     </BeginStoryboard> 
    </EventTrigger> 
</Ellipse.Triggers>