MatrixAnimationUsingPath.IsAngleCumulative Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Animasyonlu matrisin döndürme açısının yinelemeler üzerinde birikip birikmeyeceğini belirten bir değeri alır veya ayarlar.
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
Özellik Değeri
true
animasyonun dönme açısının tekrarlar üzerinde birikmesi gerekiyorsa; aksi takdirde , false
. Varsayılan değer: false
.
Örnekler
Aşağıdaki örnek, aynı dikdörtgene animasyon eklemek için iki benzer MatrixAnimationUsingPath animasyon kullanır. Her iki animasyon da aynı PathGeometry ayara sahiptir ve bu da dikdörtgenin ekran boyunca sağa doğru ilerlerken dönmesine neden olur ve her iki animasyon da dört kez yinelenmek üzere ayarlanır. İlk animasyon özelliği IsAngleCumulative olarak false
ayarlanır, bu nedenle animasyon tekrarlandığında dikdörtgen özgün açısına geri atlar. İkinci animasyon özelliği IsAngleCumulative olarak ayarlanır true
; sonuç olarak, animasyon tekrarlandığında dikdörtgen açısı özgün değerine geri atlamak yerine artacak şekilde görünür.
<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>
Açıklamalar
Bu özellik olarak ayarlanırsa true
animasyon yinelenirken animasyon matrisinin döndürme açısı birikecektir. Yolunuz küçük bir yaysa, kümülatif bir açı döndürmeyi yeniden başlatmak yerine nesnenizin her yinelemeyle sürekli dönmesine neden olur. bir IsOffsetCumulative ile true
birleştirildiğinde, nesneniz geri dönen (belirttiğiniz yola bağlı olarak) yuvarlanıyor gibi görünebilir. İlgili bilgiler için bkz IsOffsetCumulative. .
Bu özelliğin ayarlanması, ise DoesRotateWithTangent false
hiçbir etkisi olmaz.
Bu özellik, animasyon ayarı nedeniyle RepeatBehavior animasyon matrisinin açısının yinelendiğinde birikip birikmeyeceğini belirler; animasyon yeniden başlatıldığında uzaklık birikmesine neden olmaz. Animasyonu önceki animasyonların değerlerinden oluşturma hakkında bilgi için bkz IsAdditive. .
Bağımlılık Özelliği Bilgileri
Tanımlayıcı alanı | IsAngleCumulativeProperty |
Meta veri özellikleri olarak ayarlandı true |
Hiçbiri |