MatrixAnimationUsingPath.IsAngleCumulative 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定值,這個值會指定動畫矩陣的旋轉角度是否應該在重複時累加。
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
屬性值
如果動畫的旋轉角度應該在重複時累加,則為 true
,否則為 false
。 預設為 false
。
範例
下列範例使用兩個類似的 MatrixAnimationUsingPath 動畫來建立相同矩形的動畫效果。 這兩個動畫都有相同的 PathGeometry 設定,這會導致矩形沿著畫面向右移動時旋轉,而且這兩個動畫都會設定為重複四次。 第一個動畫的 IsAngleCumulative 屬性設定 false
為 ,因此當動畫重複時,矩形會跳回其原始角度。 第二個動畫的 IsAngleCumulative 屬性設定為 true
;因此,當動畫重複時,矩形角度就會增加,而不是跳回其原始值。
<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>
備註
如果此屬性設定為 true
,動畫矩陣的旋轉角度將會隨著動畫重複而累積。 如果您的路徑是小型弧形,累積角度會導致您的物件隨著每個重複而持續旋轉,而不是重新開機旋轉。 與 的 true
結合 IsOffsetCumulative 時,您的物件可能會根據您指定) 的路徑,在 (彈跳時看起來會很忙碌。 如需相關資訊,請參閱IsOffsetCumulative。
如果 為 DoesRotateWithTangentfalse
,則設定此屬性沒有任何作用。
這個屬性會決定動畫矩陣的角度是否會在動畫因為其 RepeatBehavior 設定而重複時累積;它不會在重新開機動畫時造成位移累積。 如需如何讓動畫從先前動畫的值建置的詳細資訊,請參閱 IsAdditive 。
相依性屬性資訊
識別碼欄位 | IsAngleCumulativeProperty |
中繼資料屬性設定為 true |
無 |