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


LinearPointKeyFrame Класс

Определение

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

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

Примеры

В этом примере 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();
}

Комментарии

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

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

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

LinearPointKeyFrame()

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

Свойства

Dispatcher

Всегда возвращается null в приложении Windows App SDK. Вместо этого используйте DispatcherQueue .

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

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

(Унаследовано от DependencyObject)
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)

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

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