DoubleAnimation Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Анимирует значение свойства Double между двумя целевыми значениями с помощью линейной интерполяции в течение указанной длительности.
public ref class DoubleAnimation sealed : Timeline
/// [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 DoubleAnimation final : Timeline
[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 DoubleAnimation : Timeline
Public NotInheritable Class DoubleAnimation
Inherits Timeline
<DoubleAnimation />
- Наследование
- Атрибуты
Примеры
В следующем примере показано, как использовать DoubleAnimation для создания прямоугольника, который исчезает после загрузки.
<StackPanel>
<StackPanel.Resources>
<Storyboard x:Name="myStoryboard">
<DoubleAnimation
Storyboard.TargetName="MyAnimatedRectangle"
Storyboard.TargetProperty="Opacity"
From="1.0" To="0.0" Duration="0:0:3"
AutoReverse="True" RepeatBehavior="Forever" />
</Storyboard>
</StackPanel.Resources>
<Rectangle Loaded="Start_Animation" x:Name="MyAnimatedRectangle"
Width="100" Height="100" Fill="Blue" />
</StackPanel>
// Start the animation when the object loads
private void Start_Animation(object sender, RoutedEventArgs e)
{
myStoryboard.Begin();
}
<Canvas>
<Canvas.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>
</Canvas.Resources>
<Rectangle PointerPressed="Pointer_Clicked" Fill="Blue"
Width="50" Height="50">
<Rectangle.RenderTransform>
<TranslateTransform x:Name="MyAnimatedTranslateTransform" />
</Rectangle.RenderTransform>
</Rectangle>
</Canvas>
// Start the animation when the object loads
private void Start_Animation(object sender, RoutedEventArgs e)
{
myStoryboard.Begin();
}
Комментарии
Используйте DoubleAnimation, чтобы анимировать значение свойства любого свойства зависимости, которое имеет тип Double.
Иногда необходимо использовать непрямое свойство, предназначенное для назначения под свойств другого объекта, которое является значением свойства в целевом объекте. Например, чтобы анимировать компонент X объекта RenderTransformuiElement, необходимо ссылаться на некоторые из промежуточных значений свойств объекта, пока последний шаг в пути косвенного свойства действительно является двойным значением, как и в случае с TranslateTransform.X. Правильная строка, используемая для Storyboard.TargetProperty в этом примере: "(UIElement.RenderTransform). (TranslateTransform.X)". Дополнительные сведения о непрямом целевых свойствах и других концепциях раскадровки анимации см. в разделе " Раскадрованная анимация".
DoubleAnimation обычно имеет по крайней мере один из наборов свойств From, By или To , но никогда не все три.
- Только из: Анимация выполняется из значения, указанного свойством From , к базовому значению анимируемого свойства.
- От и до: Анимация выполняется из значения, указанного свойством From , к значению, указанному свойством To .
- От и по: Анимация выполняется из значения, указанного свойством From , к значению, указанному суммой свойств From и By .
- Только для: Анимация выполняется из базового значения анимированного свойства или выходного значения предыдущей анимации в значение, указанное свойством To .
- Только: Анимация выполняется из базового значения свойства, анимируемого или предыдущего значения анимации, к сумме этого значения и значению, заданному свойством By .
Нельзя анимировать значения X и Yточки с помощью DoubleAnimation, так как эти свойства не являются свойствами зависимостей (точка является структурой и не может иметь свойства зависимостей.) Вместо этого используйте PointAnimation для анимации свойств зависимостей, имеющих значение Point .
Кроме того, нельзя использовать DoubleAnimation для анимации значений и байтов. Вместо этого вам придется использовать ObjectAnimationUsingKeyFrames, что не даст вам поведения интерполяции, поэтому может потребоваться определить несколько ключевых кадров для получения достаточно гладкой анимации. Существует не много свойств зависимостей, связанных с пользовательским интерфейсом, которые используют значения int или байты , поэтому это не должно быть общим сценарием, кроме настраиваемых свойств.
Свойства From, By или To объекта DoubleAnimation не являются строго двойными. Вместо этого это значение NULL для Double. Значение по умолчанию для этих значений равно NULL, а не 0. Это значение NULL — это то, как система анимации различает, что вы не задали конкретное значение. C++ не имеет типа NULL , поэтому вместо этого используется IReference .
Конструкторы
| Имя | Описание |
|---|---|
| DoubleAnimation() |
Инициализирует новый экземпляр класса DoubleAnimation . |
Свойства
| Имя | Описание |
|---|---|
| AutoReverse |
Возвращает или задает значение, указывающее, воспроизводится ли временная шкала в обратном порядке после завершения итерации вперед. (Унаследовано от Timeline) |
| BeginTime |
Возвращает или задает время начала этой временной шкалы . (Унаследовано от Timeline) |
| By |
Возвращает или задает общую сумму, с помощью которой анимация изменяет начальное значение. |
| ByProperty |
Определяет свойство зависимостей By . |
| Dispatcher |
Всегда возвращается |
| DispatcherQueue |
Возвращает, |
| Duration |
Возвращает или задает продолжительность времени, в течение которого эта временная шкала воспроизводится, не подсчитывая повторения. (Унаследовано от Timeline) |
| EasingFunction |
Возвращает или задает функцию упрощения, примененную к этой анимации. |
| EasingFunctionProperty |
Определяет свойство зависимостей EasingFunction . |
| EnableDependentAnimation |
Возвращает или задает значение, указывающее, должны ли анимированные свойства, которые считаются зависимыми анимациями, использовать это объявление анимации. |
| EnableDependentAnimationProperty |
Определяет свойство зависимости EnableDependentAnimation . |
| FillBehavior |
Возвращает или задает значение, указывающее, как работает анимация после окончания его активного периода. (Унаследовано от Timeline) |
| From |
Возвращает или задает начальное значение анимации. |
| FromProperty |
Определяет свойство зависимостей From . |
| RepeatBehavior |
Возвращает или задает повторяющееся поведение этой временной шкалы. (Унаследовано от Timeline) |
| SpeedRatio |
Получает или задает частоту относительно родительского элемента, в течение которого выполняется для этой временной шкалы. (Унаследовано от Timeline) |
| To |
Возвращает или задает конечное значение анимации. |
| ToProperty |
Определяет свойство зависимостей To . |
Методы
| Имя | Описание |
|---|---|
| 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) |
События
| Имя | Описание |
|---|---|
| Completed |
Происходит при завершении воспроизведения объекта Storyboard . (Унаследовано от Timeline) |