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
です。
例
次の例では、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
設定されている場合、アニメーション化されたマトリックスの回転角度は、アニメーションの繰り返しに合わせて累積されます。 パスが小さい円弧の場合、累積角度を指定すると、回転を再開するのではなく、繰り返しごとにオブジェクトが連続的に回転します。 オブジェクトtrue
とIsOffsetCumulative組み合わせると、指定したパスに応じて、オブジェクトがバウンス中にタンブルしているように見えることがあります。 関連情報については、「IsOffsetCumulative」を参照してください。
このプロパティを設定しても、次の場合 DoesRotateWithTangent は false
効果がありません。
このプロパティは、アニメーションが設定されているため RepeatBehavior にアニメーションが繰り返されたときにアニメーション マトリックスの角度が累積するかどうかを決定します。アニメーションの再起動時にオフセットが累積されることはありません。 前のアニメーションの値からアニメーションを作成する方法については、「〘」を参照してください IsAdditive。
依存プロパティ情報
識別子フィールド | IsAngleCumulativeProperty |
に設定されたメタデータ プロパティ true |
なし |