MatrixAnimationUsingPath.IsAngleCumulative Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit une valeur qui spécifie si l’angle de rotation de la matrice animée doit s’accumuler au fil des répétitions.
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
Valeur de propriété
true
si l’angle de rotation de l’animation doit s’accumuler au fil des répétitions ; sinon, false
. La valeur par défaut est false
.
Exemples
L’exemple suivant utilise deux animations similaires MatrixAnimationUsingPath pour animer le même rectangle. Les deux animations ont le même PathGeometry paramètre, ce qui entraîne la rotation du rectangle à mesure qu’il se déplace le long de l’écran vers la droite, et les deux animations sont configurées pour se répéter quatre fois. La propriété de la IsAngleCumulative première animation est définie sur false
, de sorte que le rectangle revient à son angle d’origine lorsque l’animation se répète. La propriété de la IsAngleCumulative deuxième animation est définie sur true
; par conséquent, l’angle du rectangle semble augmenter lorsque l’animation se répète, au lieu de revenir à sa valeur d’origine.
<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>
Remarques
Si cette propriété est définie sur true
, l’angle de rotation de la matrice animée s’accumule à mesure que l’animation se répète. Si votre chemin est un petit arc, un angle cumulé entraîne une rotation continue de votre objet à chaque répétition au lieu de redémarrer la rotation. Lorsqu’il est combiné avec un IsOffsetCumulative de true
, votre objet peut sembler s’effondrer pendant qu’il rebondit (en fonction du chemin que vous spécifiez). Pour plus d'informations, consultez IsOffsetCumulative.
La définition de cette propriété n’a aucun effet si DoesRotateWithTangent est false
.
Cette propriété détermine si l’angle de la matrice d’animation s’accumule lorsque l’animation se répète en raison de son RepeatBehavior paramètre ; elle n’entraîne pas l’accumulation du décalage lors du redémarrage de l’animation. Pour plus d’informations sur la façon de créer une animation à partir des valeurs d’une animation précédente, consultez IsAdditive.
Informations sur les propriétés de dépendance
Champ Identificateur | IsAngleCumulativeProperty |
Propriétés de métadonnées définies sur true |
Aucun |