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
, угол поворота анимированной матрицы будет накапливаться по мере повторения анимации. Если путь является небольшой дугой, совокупный угол приведет к непрерывному повороту объекта с каждым повтором вместо перезапуска поворота. При объединении с элементом IsOffsetCumulative true
, объект может выглядеть как переворачивающийся во время отскока (в зависимости от указанного пути). Дополнительные сведения см. в разделе IsOffsetCumulative.
Задание этого свойства не действует, если DoesRotateWithTangent имеет значение false
.
Это свойство определяет, накапливается ли угол матрицы анимации при повторе анимации из-за его RepeatBehavior настройки. При перезапуске анимации смещение не накапливается. Сведения о том, как создать анимацию на основе значений предыдущей анимации, см. в разделе IsAdditive.
Сведения о свойстве зависимостей
Поле идентификатора | IsAngleCumulativeProperty |
Для свойств метаданных задано значение true |
Нет |