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 by se úhel otočení animované matice měl nahromažďovat v průběhu 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
true
pokud by se úhel otočení animace měl kumulovat při opakování; v opačném případě . false
Výchozí formát 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 pohybuje podél obrazovky doprava, a obě animace se nastaví tak, aby se opakovaly čtyřikrát. První vlastnost 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 je nastavena na true
; v důsledku toho se zobrazí, že se úhel obdélníku zvýší, když se animace IsAngleCumulative opakuje, a ne přeskočí 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 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í. V kombinaci s objektem IsOffsetCumulative true
se může zdát, že se při skákání posouvá (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í, když se animace opakuje z důvodu jeho RepeatBehavior nastavení; nezpůsobí, že se posun nahromáždí, když se animace restartuje. Informace o tom, jak vytvořit animaci z hodnot předchozí animace, najdete v tématu IsAdditive.
Informace o vlastnosti závislosti
Pole identifikátoru | IsAngleCumulativeProperty |
Vlastnosti metadat nastavené na true |
Žádné |