MatrixAnimationUsingPath.IsAngleCumulative Eigenschap

Definitie

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de draaihoek van de geanimeerde matrix zich moet verzamelen over herhalingen.

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

Waarde van eigenschap

true als de draaihoek van de animatie zich moet verzamelen over herhalingen; anders, false. De standaardwaarde is false.

Voorbeelden

In het volgende voorbeeld worden twee vergelijkbare MatrixAnimationUsingPath animaties gebruikt om dezelfde rechthoek te animeren. Beide animaties hebben dezelfde PathGeometry instelling, waardoor de rechthoek wordt gedraaid terwijl het langs het scherm naar rechts wordt verplaatst en beide animaties vier keer worden herhaald. De eigenschap van IsAngleCumulative de eerste animatie is ingesteld op false, dus de rechthoek springt terug naar de oorspronkelijke hoek wanneer de animatie wordt herhaald. De eigenschap van IsAngleCumulative de tweede animatie is ingesteld op true; als gevolg hiervan lijkt de rechthoek groter te worden wanneer de animatie wordt herhaald, in plaats van terug te springen naar de oorspronkelijke waarde.

<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>

Opmerkingen

Als deze eigenschap is ingesteld op true, wordt de draaihoek van de matrix met animaties samengevoegd terwijl de animatie wordt herhaald. Als uw pad een kleine boog is, zorgt een cumulatieve hoek ervoor dat uw object continu wordt gedraaid met elke herhaling in plaats van de rotatie opnieuw te starten. In combinatie met een IsOffsetCumulative van truelijkt het alsof uw object afzakt terwijl het stuitert (afhankelijk van het pad dat u opgeeft). Zie voor verwante informatie IsOffsetCumulative.

Het instellen van deze eigenschap heeft geen effect als DoesRotateWithTangent dit is false.

Met deze eigenschap wordt bepaald of de hoek van de animatiematrix zich opstapelt wanneer de animatie wordt herhaald vanwege RepeatBehavior de instelling. De verschuiving wordt niet veroorzaakt wanneer de animatie opnieuw wordt gestart. Zie voor meer informatie over het maken van een animatie op basis van de waarden IsAdditivevan een vorige animatie.

Informatie over afhankelijkheidseigenschappen

Item Waarde
Id-veld IsAngleCumulativeProperty
Eigenschappen van metagegevens ingesteld op true Geen

Van toepassing op

Zie ook