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

プロパティ値

Boolean

アニメーションの回転角度を繰り返しで累積する場合は true。それ以外の場合は false。 既定値は、false です。

次の例では、2 つの同様 MatrixAnimationUsingPath のアニメーションを使用して、同じ四角形をアニメーション化します。 どちらのアニメーションも同じ PathGeometry 設定であるため、画面に沿って右に移動すると四角形が回転し、両方のアニメーションが 4 回繰り返されるように設定されます。 最初のアニメーションの IsAngleCumulative プロパティが設定 falseされているため、アニメーションが繰り返されると、四角形は元の角度に戻ります。 2 番目のアニメーションの 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設定されている場合、アニメーション化されたマトリックスの回転角度は、アニメーションの繰り返しに合わせて累積されます。 パスが小さい円弧の場合、累積角度を指定すると、回転を再開するのではなく、繰り返しごとにオブジェクトが連続的に回転します。 オブジェクトtrueIsOffsetCumulative組み合わせると、指定したパスに応じて、オブジェクトがバウンス中にタンブルしているように見えることがあります。 関連情報については、「IsOffsetCumulative」を参照してください。

このプロパティを設定しても、次の場合 DoesRotateWithTangentfalse効果がありません。

このプロパティは、アニメーションが設定されているため RepeatBehavior にアニメーションが繰り返されたときにアニメーション マトリックスの角度が累積するかどうかを決定します。アニメーションの再起動時にオフセットが累積されることはありません。 前のアニメーションの値からアニメーションを作成する方法については、「〘」を参照してください IsAdditive

依存プロパティ情報

識別子フィールド IsAngleCumulativeProperty
に設定されたメタデータ プロパティ true なし

適用対象

こちらもご覧ください