Поделиться через


SplinePointKeyFrame Класс

Определение

Выполняет анимацию от значения Point предыдущего ключевого кадра к его собственному значению с помощью сплайн-интерполяции.

public ref class SplinePointKeyFrame sealed : PointKeyFrame
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class SplinePointKeyFrame final : PointKeyFrame
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class SplinePointKeyFrame final : PointKeyFrame
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class SplinePointKeyFrame : PointKeyFrame
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class SplinePointKeyFrame : PointKeyFrame
Public NotInheritable Class SplinePointKeyFrame
Inherits PointKeyFrame
<SplinePointKeyFrame .../>
Наследование
Object Platform::Object IInspectable DependencyObject PointKeyFrame SplinePointKeyFrame
Атрибуты

Требования к Windows

Семейство устройств
Windows 10 (появилось в 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v1.0)

Примеры

В этом примере XAML многоточие перемещается по треугольному пути. В примере используется класс PointAnimationUsingKeyFrames для анимации свойства Centerобъекта EllipseGeometry. Эта анимация использует три ключевых кадра следующим образом:

  1. В первой половине второго он использует экземпляр класса LinearPointKeyFrame для перемещения эллипса по пути с постоянной скоростью из его начальной позиции. Линейные ключевые кадры, такие как LinearPointKeyFrame , создают плавную линейную интерполяцию между значениями.
  2. В конце следующей половины секунды он использует экземпляр класса DiscretePointKeyFrame для внезапного перемещения эллипса вдоль пути в следующую позицию. Дискретные ключевые кадры, такие как DiscretePointKeyFrame , создают внезапные переходы между значениями.
  3. В течение последних двух секунд он использует экземпляр класса SplinePointKeyFrame для перемещения эллипса обратно в начальную позицию. Ключевые кадры сплайна, такие как SplinePointKeyFrame, создают переменный переход между значениями в соответствии со значениями свойства KeySpline . В этом примере анимация начинается медленно и ускоряется экспоненциально к концу временного отрезка.
<Canvas Width="400" Height="300">
    <Canvas.Resources>
        <Storyboard x:Name="myStoryboard">

            <!-- Animating the Center property uses 3 KeyFrames, which animate
             the ellipse allong a triangular path. -->
            <PointAnimationUsingKeyFrames
          Storyboard.TargetProperty="Center"
          Storyboard.TargetName="MyAnimatedEllipseGeometry"
          Duration="0:0:5" RepeatBehavior="Forever" EnableDependentAnimation="True">

                <!-- Over the first half second, Using a LinearPointKeyFrame, the ellipse 
               moves steadily from its starting position along the first line of the 
               trianglar path.  -->
                <LinearPointKeyFrame KeyTime="0:0:0.5" Value="100,300" />

                <!-- Using a DiscretePointKeyFrame, the ellipse suddenly changes position
               after the first second of the animation. -->
                <DiscretePointKeyFrame KeyTime="0:0:1" Value="400,300" />

                <!-- Using a SplinePointKeyFrame, the ellipse moves back to its starting
               position. It moves slowly at first and then speeds up. This key frame 
               takes 2 seconds to complete. -->
                <SplinePointKeyFrame KeySpline="0.6,0.0 0.9,0.00" 
                 KeyTime="0:0:3" Value="200,100" />
            </PointAnimationUsingKeyFrames>
        </Storyboard>
    </Canvas.Resources>
    <Path Fill="Blue" Loaded="Start_Animation">
        <Path.Data>

            <!-- Describes an ellipse. -->
            <EllipseGeometry x:Name="MyAnimatedEllipseGeometry"
             Center="200,100" RadiusX="15" RadiusY="15" />
        </Path.Data>
    </Path>
</Canvas>
// Start the animation when the object loads
private void Start_Animation(object sender, RoutedEventArgs e)
{
    myStoryboard.Begin();
}
' Start the animation when the object loads
Private Sub Start_Animation(ByVal sender As Object, ByVal e As EventArgs)
    myStoryboard.Begin()
End Sub

Комментарии

Анимации по ключевым кадрам допускают несколько целевых значений, которые достигаются в определенный момент по временной шкале анимации. Другими словами, каждый ключевой кадр может указывать различное промежуточное значение, последний достигнутый ключевой кадр является конечным значением анимации. Указав несколько значений для анимирования, вы можете создавать более сложные анимации. В одной коллекции ключевых кадров можно сочетать дискретные, линейные и сплайновые ключевые кадры.

Дополнительные сведения об использовании анимации по ключевым кадрам см. в разделах Анимация по ключевым кадрам и анимация с функцией облегчения.

Конструкторы

SplinePointKeyFrame()

Инициализирует новый экземпляр класса SplinePointKeyFrame .

Свойства

Dispatcher

Возвращает CoreDispatcher , с которым связан этот объект. CoreDispatcher представляет средство, которое может получить доступ к DependencyObject в потоке пользовательского интерфейса, даже если код инициируется потоком, не относящегося к пользовательскому интерфейсу.

(Унаследовано от DependencyObject)
KeySpline

Получает или задает две контрольные точки, определяющие ход выполнения анимации для данного ключевого кадра.

KeySplineProperty

Определяет свойство зависимости KeySpline .

KeyTime

Возвращает или задает время достижения целевого значения ключевого кадра.

(Унаследовано от PointKeyFrame)
Value

Получает или задает целевое значение опорного кадра.

(Унаследовано от PointKeyFrame)

Методы

ClearValue(DependencyProperty)

Очищает локальное значение свойства зависимостей.

(Унаследовано от DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Возвращает любое базовое значение, установленное для свойства зависимостей, которое применяется в случаях, когда анимация не активна.

(Унаследовано от DependencyObject)
GetValue(DependencyProperty)

Возвращает текущее действующее значение свойства зависимостей из DependencyObject.

(Унаследовано от DependencyObject)
ReadLocalValue(DependencyProperty)

Возвращает локальное значение свойства зависимостей, если задано локальное значение.

(Унаследовано от DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Регистрирует функцию уведомления для прослушивания изменений определенной DependencyProperty в этом экземпляре DependencyObject .

(Унаследовано от DependencyObject)
SetValue(DependencyProperty, Object)

Задает локальное значение свойства зависимостей для Объекта DependencyObject.

(Унаследовано от DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Отменяет уведомление об изменениях, которое было ранее зарегистрировано путем вызова метода RegisterPropertyChangedCallback.

(Унаследовано от DependencyObject)

Применяется к

См. также раздел