2014-02-12 2 views
0

Я пытаюсь сделать обратный круг. Но я просто не могу заставить его работать. Я могу создать круг заполнения, но не один для обратного отсчета. Надеюсь, код будет ясен. То, что я пытаюсь сделать, это именно то, что обратная анимация делает (комментарий в коде)Создание обратного круга с ArcSegment в WPF

<UserControl.Triggers> 
    <EventTrigger RoutedEvent="Page.Loaded"> 
     <BeginStoryboard> 
      <Storyboard > 
       <!--RepeatBehavior="Forever" 
       AutoReverse="True" >--> 
       <PointAnimationUsingPath 
         Storyboard.TargetName="arc" 
         Storyboard.TargetProperty="Point" 
         Duration="0:0:5"> 
        <PointAnimationUsingPath.PathGeometry> 
         <PathGeometry> 
          <PathFigure StartPoint="200 100"> 
           <ArcSegment Size="100 100" Point="200 300" SweepDirection="Clockwise" /> 
           <ArcSegment Size="100 100" Point="200 100" SweepDirection="Clockwise" /> 
          </PathFigure> 
         </PathGeometry> 
        </PointAnimationUsingPath.PathGeometry> 
       </PointAnimationUsingPath> 

       <BooleanAnimationUsingKeyFrames 
         Storyboard.TargetName="arc" 
         Storyboard.TargetProperty="IsLargeArc"> 
        <DiscreteBooleanKeyFrame KeyTime="0:0:2.5" Value="True" /> 
        <DiscreteBooleanKeyFrame KeyTime="0:0:5" Value="False" /> 
       </BooleanAnimationUsingKeyFrames> 
      </Storyboard> 
     </BeginStoryboard> 
    </EventTrigger> 
</UserControl.Triggers> 

<Path Stroke="Blue" StrokeThickness="3" Fill="Transparent"> 
    <Path.Data> 
     <PathGeometry> 
      <PathFigure StartPoint="200 100" IsClosed="False"> 
       <ArcSegment x:Name="arc" Size="100 100" SweepDirection="Clockwise" /> 
      </PathFigure> 
     </PathGeometry> 
    </Path.Data> 
</Path> 

ответ

0

я наконец-то удалось решить, используя только один ArcSegment для анимационного точки с конечной точки, отличной от начальной точки на .01 и изменения раз для дискретной булевой анимации для IsLargeArc, хотя я чувствовал, что ArcSegment иногда вел себя иначе, без изменения кода.

Смежные вопросы