MatrixAnimationUsingPath.IsAngleCumulative Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta un valore che specifica se l'angolo di rotazione della matrice animata deve accumularsi sulle ripetizioni.
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
Valore della proprietà
true se l'angolo di rotazione dell'animazione deve accumularsi sulle ripetizioni; in caso contrario, false. Il valore predefinito è false.
Esempio
Nell'esempio seguente vengono usate due animazioni simili MatrixAnimationUsingPath per animare lo stesso rettangolo. Entrambe le animazioni hanno la stessa PathGeometry impostazione, che determina la rotazione del rettangolo mentre si sposta lungo lo schermo a destra e entrambe le animazioni vengono impostate per ripetere quattro volte. La proprietà della IsAngleCumulative prima animazione è impostata su false, quindi il rettangolo torna all'angolo originale quando l'animazione si ripete. La proprietà della IsAngleCumulative seconda animazione è impostata su true. Di conseguenza, l'angolo del rettangolo sembra aumentare quando l'animazione si ripete, anziché tornare al valore originale.
<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>
Commenti
Se questa proprietà è impostata su true, l'angolo di rotazione della matrice animata si accumula quando l'animazione si ripete. Se il percorso è un piccolo arco, un angolo cumulativo causerà la rotazione continua dell'oggetto con ogni ripetizione anziché riavviare la rotazione. Se combinato con un IsOffsetCumulative di true, l'oggetto potrebbe sembrare cadere mentre rimbalza (a seconda del percorso specificato). Per informazioni correlate, vedere IsOffsetCumulative.
L'impostazione di questa proprietà non ha alcun effetto se DoesRotateWithTangent è false.
Questa proprietà determina se l'angolo della matrice di animazione si accumula quando l'animazione si ripete a causa dell'impostazione RepeatBehavior . L'offset non si accumula quando l'animazione viene riavviata. Per informazioni su come creare un'animazione in base ai valori di un'animazione precedente, vedere IsAdditive.
Informazioni sulle proprietà di dipendenza
| Elemento | Valore |
|---|---|
| Campo Identificatore | IsAngleCumulativeProperty |
Proprietà dei metadati impostate su true |
Nessuno |