共用方式為


MatrixAnimationUsingPath.IsAngleCumulative 屬性

定義

取得或設定值,這個值會指定動畫矩陣的旋轉角度是否應該在重複時累加。

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

適用於

另請參閱