DiscreteDoubleKeyFrame Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
public ref class DiscreteDoubleKeyFrame 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 DiscreteDoubleKeyFrame 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 DiscreteDoubleKeyFrame : DoubleKeyFrame
Public NotInheritable Class DiscreteDoubleKeyFrame
Inherits DoubleKeyFrame
<DiscreteDoubleKeyFrame .../>
- Наследование
- Атрибуты
Примеры
В этом примере XAML прямоугольник перемещается по экрану. В примере используется класс DoubleAnimationUsingKeyFrames для анимации свойства XtranslateTransform , примененного к Объекту Rectangle. Эта анимация использует три ключевых кадра следующим образом:
- В течение первых трех секунд он использует экземпляр класса LinearDoubleKeyFrame для перемещения прямоугольника по пути с постоянной скоростью из начальной позиции в позицию 500. Линейные ключевые кадры, такие как LinearDoubleKeyFrame , создают плавный линейный переход между значениями.
- В конце четвертой секунды он использует экземпляр класса DiscreteDoubleKeyFrame для внезапного перемещения прямоугольника в следующую позицию. Дискретные ключевые кадры, такие как DiscreteDoubleKeyFrame, создают внезапные переходы между значениями. В этом примере прямоугольник находится в начальной позиции, а затем внезапно появляется в позиции 500.
- В последние две секунды он использует экземпляр класса SplineDoubleKeyFrame для перемещения прямоугольника обратно в начальную позицию. Ключевые кадры сплайна, такие как 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();
}
Комментарии
Анимации по ключевым кадрам допускают несколько целевых значений, которые достигаются в определенный момент по временной шкале анимации. Другими словами, каждый ключевой кадр может указывать различное промежуточное значение, последний достигнутый ключевой кадр является конечным значением анимации. Указав несколько значений для анимирования, вы можете создавать более сложные анимации. В одной коллекции ключевых кадров можно сочетать дискретные, линейные и сплайновые ключевые кадры.
Дополнительные сведения об использовании анимации по ключевым кадрам см. в разделах Анимация по ключевым кадрам и анимация с функцией облегчения.
Конструкторы
DiscreteDoubleKeyFrame() |
Инициализирует новый экземпляр класса DiscreteDoubleKeyFrame . |
Свойства
Dispatcher |
Всегда возвращается |
DispatcherQueue |
Возвращает объект , |
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) |