Freigeben über


MatrixAnimationUsingPath.IsAngleCumulative Eigenschaft

Definition

Ruft einen Wert ab oder legt diesen fest, der angibt, ob der Drehungswinkel der animierten Matrix bei Wiederholungen kumuliert werden sollte.

public:
 property bool IsAngleCumulative { bool get(); void set(bool value); };
public bool IsAngleCumulative { get; set; }
member this.IsAngleCumulative : bool with get, set
Public Property IsAngleCumulative As Boolean

Eigenschaftswert

Boolean

true, wenn der Drehungswinkel der Animation bei Wiederholungen kumuliert werden soll, andernfalls false. Der Standardwert ist false.

Beispiele

Im folgenden Beispiel werden zwei ähnliche MatrixAnimationUsingPath Animationen verwendet, um das gleiche Rechteck animieren zu können. Beide Animationen verfügen über die gleiche PathGeometry Einstellung, wodurch das Rechteck gedreht wird, da er nach rechts verschoben wird, und beide Animationen werden vier mal wiederholt. Die Eigenschaft der ersten Animation IsAngleCumulative ist auf falsefestgelegt, sodass das Rechteck zurück zu seinem ursprünglichen Winkel springt, wenn die Animation wiederholt wird. Die Eigenschaft der zweiten Animation IsAngleCumulative wird auf truefestgelegt; als Ergebnis wird der Rechteckwinkel angezeigt, wenn die Animation wiederholt wird, anstatt zurück zum ursprünglichen Wert zu springen.

<Page 
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
  <StackPanel Margin="50">
      
    <!-- The Rectangle that is animated across the screen by animating
         the MatrixTransform applied to the button. -->
    <Rectangle 
      Width="75" Height="25"
      HorizontalAlignment="Left"
      VerticalAlignment="Top"
      Stroke="Black" StrokeThickness="1">
      <Rectangle.RenderTransform>
        <MatrixTransform x:Name="myMatrixTransform">
          <MatrixTransform.Matrix >
            <Matrix OffsetX="10" OffsetY="100"/>
          </MatrixTransform.Matrix>
        </MatrixTransform>
      </Rectangle.RenderTransform>
      <Rectangle.Fill>
        <LinearGradientBrush>
          <GradientStop Color="Lime" Offset="0.0" />
          <GradientStop Color="Gray" Offset="1.0" />
        </LinearGradientBrush>
      </Rectangle.Fill>
    </Rectangle>

    <!-- Shows the animation path. -->
    <Path
      Stroke="Black" StrokeThickness="5"
      Data="M 0,0 A 50,50 0 1 0 100,0" />
    
    <StackPanel Margin="0,200,0,0" Orientation="Horizontal">
    <Button Content="Animate with IsAngleCumulative set to False"
      HorizontalAlignment="Left" Padding="5">
      <Button.Triggers>
        <EventTrigger RoutedEvent="Button.Click">
          <BeginStoryboard>
            <Storyboard>

              <!-- The angle generated by this animation does not
                   accumulate over repetitions. As a result, 
                   the rectangle appears to jump back to its 
                   starting angle when the animation repeats.  -->
              <MatrixAnimationUsingPath
                Storyboard.TargetName="myMatrixTransform"
                Storyboard.TargetProperty="Matrix"
                Duration="0:0:2" 
                RepeatBehavior="4x" 
                IsOffsetCumulative="True" 
                IsAngleCumulative="False"
                DoesRotateWithTangent="True">
                <MatrixAnimationUsingPath.PathGeometry>
                  <PathGeometry Figures="M 0,0 A 50,50 0 1 0 100,0" />
                </MatrixAnimationUsingPath.PathGeometry>
              </MatrixAnimationUsingPath>
            </Storyboard>
          </BeginStoryboard>
        </EventTrigger>
      </Button.Triggers>   
    </Button>
    
     <Button Content="Animate with IsAngleCumulative set to True"
      HorizontalAlignment="Left" 
      Padding="5">
      <Button.Triggers>
        <EventTrigger RoutedEvent="Button.Click">
          <BeginStoryboard>
            <Storyboard>
            
              <!-- The angle generated by this animation accumulates
                   over repetitions. As a result, the rectangle's
                   rotation appears seamless.  -->
              <MatrixAnimationUsingPath
                Storyboard.TargetName="myMatrixTransform"
                Storyboard.TargetProperty="Matrix"
                Duration="0:0:2" 
                RepeatBehavior="4x" 
                IsOffsetCumulative="True" 
                IsAngleCumulative="True"
                DoesRotateWithTangent="True">
                <MatrixAnimationUsingPath.PathGeometry>
                  <PathGeometry Figures="M 0,0 A 50,50 0 1 0 100,0" />
                </MatrixAnimationUsingPath.PathGeometry>
              </MatrixAnimationUsingPath>
            </Storyboard>
          </BeginStoryboard>
        </EventTrigger>
      </Button.Triggers>   
    </Button>   
    </StackPanel>
    
    
  </StackPanel>
</Page>

Hinweise

Wenn diese Eigenschaft auf truefestgelegt ist, wird der Drehungswinkel der animierten Matrix gesammelt, wenn die Animation wiederholt wird. Wenn Ihr Pfad ein kleiner Bogen ist, führt ein kumulativer Winkel dazu, dass das Objekt kontinuierlich mit jeder Wiederholung gedreht wird, anstatt die Drehung neu zu starten. Bei Kombination mit einem IsOffsetCumulative von true, könnte Ihr Objekt möglicherweise abstürzen, während es abstürzt (abhängig vom angegebenen Pfad). Verwandte Informationen finden Sie unter IsOffsetCumulative.

Das Festlegen dieser Eigenschaft hat keine Auswirkung, wenn DoesRotateWithTangent dies der Fall ist false.

Diese Eigenschaft bestimmt, ob der Winkel der Animationsmatrix angibt, wenn die Animation aufgrund seiner RepeatBehavior Einstellung wiederholt wird. Es verursacht nicht, dass der Offset beim Neustart der Animation gesammelt wird. Informationen zum Erstellen einer Animation durch die Werte einer vorherigen Animation finden Sie unter IsAdditive.

Informationen zur Abhängigkeitseigenschaft

Bezeichnerfeld IsAngleCumulativeProperty
Metadateneigenschaften auf true festgelegt Keine

Gilt für

Siehe auch