Animatable.ApplyAnimationClock Метод

Определение

Анимирует указанное свойство DependencyProperty с использованием указанного объекта AnimationClock.

Перегрузки

ApplyAnimationClock(DependencyProperty, AnimationClock)

Применяет AnimationClock к заданному DependencyProperty. Если свойство уже анимировано, используется эстафетное поведение SnapshotAndReplace.

ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)

Применяет AnimationClock к заданному DependencyProperty. Если свойство уже является анимированным, используется указанное поведение HandoffBehavior.

ApplyAnimationClock(DependencyProperty, AnimationClock)

Применяет AnimationClock к заданному DependencyProperty. Если свойство уже анимировано, используется эстафетное поведение SnapshotAndReplace.

public:
 virtual void ApplyAnimationClock(System::Windows::DependencyProperty ^ dp, System::Windows::Media::Animation::AnimationClock ^ clock);
public void ApplyAnimationClock (System.Windows.DependencyProperty dp, System.Windows.Media.Animation.AnimationClock clock);
abstract member ApplyAnimationClock : System.Windows.DependencyProperty * System.Windows.Media.Animation.AnimationClock -> unit
override this.ApplyAnimationClock : System.Windows.DependencyProperty * System.Windows.Media.Animation.AnimationClock -> unit
Public Sub ApplyAnimationClock (dp As DependencyProperty, clock As AnimationClock)

Параметры

dp
DependencyProperty

Анимируемое свойство.

clock
AnimationClock

Часы, с помощью которых нужно анимировать заданное свойство. Если clock имеет значение null, все анимации будут удалены из заданного свойства (но не остановлены).

Реализации

Комментарии

Обратите внимание, что использование этого метода для удаления часов из свойства не останавливает эти часы.

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

ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)

Применяет AnimationClock к заданному DependencyProperty. Если свойство уже является анимированным, используется указанное поведение HandoffBehavior.

public:
 virtual void ApplyAnimationClock(System::Windows::DependencyProperty ^ dp, System::Windows::Media::Animation::AnimationClock ^ clock, System::Windows::Media::Animation::HandoffBehavior handoffBehavior);
public void ApplyAnimationClock (System.Windows.DependencyProperty dp, System.Windows.Media.Animation.AnimationClock clock, System.Windows.Media.Animation.HandoffBehavior handoffBehavior);
abstract member ApplyAnimationClock : System.Windows.DependencyProperty * System.Windows.Media.Animation.AnimationClock * System.Windows.Media.Animation.HandoffBehavior -> unit
override this.ApplyAnimationClock : System.Windows.DependencyProperty * System.Windows.Media.Animation.AnimationClock * System.Windows.Media.Animation.HandoffBehavior -> unit
Public Sub ApplyAnimationClock (dp As DependencyProperty, clock As AnimationClock, handoffBehavior As HandoffBehavior)

Параметры

dp
DependencyProperty

Анимируемое свойство.

clock
AnimationClock

Часы, с помощью которых нужно анимировать заданное свойство. Если параметр handoffBehavior имеет значение SnapshotAndReplace, а параметр clock – значение null, все анимации будут удалены из указанного свойства (но не остановлены). Если параметр handoffBehavior равен Compose и часы имеют значение null, этот метод не действует.

handoffBehavior
HandoffBehavior

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

Реализации

Примеры

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

Комментарии

Обратите внимание, что использование этого метода для удаления часов из свойства не останавливает эти часы.

Использование compose HandoffBehavior

При применении Storyboard, AnimationTimeline или AnimationClock к свойству с помощью ComposeHandoffBehavior любые объекты Clock, ранее связанные с этим свойством, продолжают потреблять ресурсы системы; система управления временем не удаляет эти часы автоматически.

Чтобы избежать проблем с производительностью при применении большого количества часов через Compose, следует удалять составные часы из анимируемого свойства после их завершения. Есть несколько способов удаления часов.

  • Чтобы удалить все часы из свойства, используйте метод ApplyAnimationClock(DependencyProperty, AnimationClock) или BeginAnimation(DependencyProperty, AnimationTimeline) анимированного объекта. Укажите в качестве первого параметра анимируемое свойство, а в качестве второго параметра — null. Это удалит из свойства все часы анимации.

  • Чтобы удалить определенный AnimationClock из списка часов, используйте свойствоController объекта AnimationClock для извлечения ClockController, а затем вызовите метод Remove объекта ClockController. Обычно это делается в обработчике событий Completed для часов. Обратите внимание, что только корневые часы могут управляться через ClockController; свойство Controller дочерних часов возвратит null. Также обратите внимание, что событие Completed не будет вызвано, если эффективная продолжительность часов — forever (не ограничена). В этом случае пользователю потребуется определить, когда нужно вызывать Remove.

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

Дополнительные сведения об объектах часов см. в обзоре системы анимации и времени.

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