2009-12-01 3 views
1

내가 보여 다음 XAML을 가지고 Ellipse 회전 : 예상하지만 애니메이션이 결코 시작하지 않기 때문에WPF 애니메이션이 재생되지

<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> 
관련 문제