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 accumulare i valori di ripetizione.
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 accumulare i valori di ripetizione; 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 causa la rotazione del rettangolo mentre si sposta lungo lo schermo a destra e entrambe le animazioni sono impostate per ripetere quattro volte. La prima proprietà dell'animazione IsAngleCumulative è impostata su false
, quindi il rettangolo torna all'angolo originale quando l'animazione si ripete. La proprietà della seconda animazione è impostata su true
. Di conseguenza, l'angolo del IsAngleCumulative 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. Quando si combina con un IsOffsetCumulative oggetto true
, l'oggetto potrebbe sembrare incappato mentre viene rimbalzato (a seconda del percorso specificato). Per ulteriori informazioni, 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 della relativa RepeatBehavior impostazione; non causa l'accumulo dell'offset quando l'animazione viene riavviata. Per informazioni su come creare una compilazione di un'animazione dai valori di un'animazione precedente, vedere IsAdditive.
Informazioni proprietà di dipendenza
Campo Identificatore | IsAngleCumulativeProperty |
Proprietà dei metadati impostate su true |
Nessuno |