MatrixAnimationUsingPath.IsAngleCumulative Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
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 false
festgelegt, sodass das Rechteck zurück zu seinem ursprünglichen Winkel springt, wenn die Animation wiederholt wird. Die Eigenschaft der zweiten Animation IsAngleCumulative wird auf true
festgelegt; 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 true
festgelegt 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 |