LinearDoubleKeyFrame Класс

Определение

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

public ref class LinearDoubleKeyFrame sealed : DoubleKeyFrame
/// [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 LinearDoubleKeyFrame final : DoubleKeyFrame
[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 LinearDoubleKeyFrame : DoubleKeyFrame
Public NotInheritable Class LinearDoubleKeyFrame
Inherits DoubleKeyFrame
<LinearDoubleKeyFrame .../>
Наследование
Object Platform::Object IInspectable DependencyObject DoubleKeyFrame LinearDoubleKeyFrame
Атрибуты

Примеры

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

  1. В течение первых трех секунд используется экземпляр класса LinearDoubleKeyFrame для перемещения прямоугольника вдоль пути с устойчивой скоростью от начальной позиции до позиции 500. Линейные ключевые кадры, такие как LinearDoubleKeyFrame, создают плавный линейный переход между значениями.
  2. В конце четвертой секунды используется экземпляр класса DiscreteDoubleKeyFrame для внезапного перемещения прямоугольника на следующую позицию. Дискретные ключевые кадры, такие как DiscreteDoubleKeyFrame , создают внезапные переходы между значениями. В этом примере прямоугольник находится в начальной позиции, а затем внезапно появится в позиции 500.
  3. В последние две секунды используется экземпляр класса SplineDoubleKeyFrame для перемещения прямоугольника обратно в начальную позицию. Ключевые кадры spline, такие как SplineDoubleKeyFrame , создают переменный переход между значениями в соответствии со значением свойства KeySpline . В этом примере прямоугольник начинается медленно, а затем ускоряется экспоненциально в конце сегмента времени.
<StackPanel>
    <StackPanel.Resources>
        <Storyboard x:Name="myStoryboard">

            <!-- Animate the TranslateTransform's X property
             from 0 to 350, then 50,
             then 200 over 10 seconds. -->
            <DoubleAnimationUsingKeyFrames
          Storyboard.TargetName="MyAnimatedTranslateTransform"
          Storyboard.TargetProperty="X"
          Duration="0:0:10" EnableDependentAnimation="True">

                <!-- Using a LinearDoubleKeyFrame, the rectangle moves 
                 steadily from its starting position to 500 over 
                 the first 3 seconds.  -->
                <LinearDoubleKeyFrame Value="500" KeyTime="0:0:3" />

                <!-- Using a DiscreteDoubleKeyFrame, the rectangle suddenly 
                 appears at 400 after the fourth second of the animation. -->
                <DiscreteDoubleKeyFrame Value="400" KeyTime="0:0:4" />

                <!-- Using a SplineDoubleKeyFrame, the rectangle moves 
                 back to its starting point. The
                 animation starts out slowly at first and then speeds up. 
                 This KeyFrame ends after the 6th
                 second. -->
                <SplineDoubleKeyFrame KeySpline="0.6,0.0 0.9,0.00" Value="0" KeyTime="0:0:6" />

            </DoubleAnimationUsingKeyFrames>
        </Storyboard>
    </StackPanel.Resources>
    <Rectangle Fill="Blue" Width="50" Height="50" Loaded="Start_Animation">
        <Rectangle.RenderTransform>
            <TranslateTransform x:Name="MyAnimatedTranslateTransform" 
             X="0" Y="0" />
        </Rectangle.RenderTransform>
    </Rectangle>
</StackPanel>
// Start the animation when the object loads
private void Start_Animation(object sender, RoutedEventArgs e)
{
    myStoryboard.Begin();
}

Комментарии

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

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

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

Имя Описание
LinearDoubleKeyFrame()

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

Свойства

Имя Описание
Dispatcher

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

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

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

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

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

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

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

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

Методы

Имя Описание
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)

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

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