MatrixAnimationUsingPath.IsAngleCumulative Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví hodnotu, která určuje, zda se úhel otočení animované matice má hromadit při opakování.
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
Hodnota vlastnosti
truepokud by se úhel otočení animace měl hromadit nad opakováním; v opačném případě . false Výchozí hodnota je false.
Příklady
Následující příklad používá dvě podobné MatrixAnimationUsingPath animace k animaci stejného obdélníku. Obě animace mají stejné PathGeometry nastavení, což způsobí, že se obdélník otočí tak, jak se posune podél obrazovky doprava, a obě animace se nastaví tak, aby se opakovaly čtyřikrát. Vlastnost první animace IsAngleCumulative je nastavena na false, takže obdélník přejde zpět do původního úhlu, když se animace opakuje. Druhá vlastnost animace IsAngleCumulative je nastavena na true; v důsledku toho se při opakování animace zvětší úhel obdélníku, místo aby se přeskočil zpět na původní hodnotu.
<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>
Poznámky
Pokud je tato vlastnost nastavena na true, úhel otočení animované matice se shromáždí při opakování animace. Pokud je vaše cesta malý oblouk, kumulativní úhel způsobí, že se objekt bude nepřetržitě otáčet s každým opakováním místo restartování otočení. Když se objekt zkombinuje s objektem IsOffsetCumulativetrue, může se zdát, že se během ní odrazí (v závislosti na zadané cestě). Související informace naleznete v tématu IsOffsetCumulative.
Nastavení této vlastnosti nemá žádný vliv, pokud DoesRotateWithTangent je false.
Tato vlastnost určuje, zda se úhel matice animace hromadí při opakování animace z důvodu jeho RepeatBehavior nastavení; nezpůsobí, že posun se hromadí při restartování animace. Informace o tom, jak vytvořit animaci z hodnot předchozí animace, najdete v tématu IsAdditive.
Informace o vlastnosti závislosti
| Položka | Hodnota |
|---|---|
| Pole Identifikátor | IsAngleCumulativeProperty |
Vlastnosti metadat nastavené na true |
None |