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)
Параметры
Анимируемое свойство.
- 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)
Параметры
Анимируемое свойство.
- clock
- AnimationClock
Часы, с помощью которых нужно анимировать заданное свойство. Если параметр handoffBehavior
имеет значение SnapshotAndReplace, а параметр clock
– значение null
, все анимации будут удалены из указанного свойства (но не остановлены). Если параметр handoffBehavior
равен Compose и часы имеют значение null
, этот метод не действует.
- handoffBehavior
- HandoffBehavior
Значение, которое указывает, как новая анимация должна взаимодействовать с любыми текущими анимациями, уже влияющими на значение свойства.
Реализации
Примеры
В следующем примере показано, как применить часы анимации с помощью различных HandoffBehavior параметров.
Комментарии
Обратите внимание, что использование этого метода для удаления часов из свойства не останавливает эти часы.
Использование Compose HandoffBehavior
При применении StoryboardAnimationTimelineсвойства или AnimationClock к свойству, использующимHandoffBehaviorCompose, все Clock объекты, ранее связанные с этим свойством, продолжают потреблять системные ресурсы. Система времени не будет автоматически удалять эти часы.
Чтобы избежать проблем с производительностью при применении большого количества часов Compose, следует удалить часы создания из анимированного свойства после их завершения. Есть несколько способов удаления часов.
Чтобы удалить все часы из свойства, используйте ApplyAnimationClock(DependencyProperty, AnimationClock) или BeginAnimation(DependencyProperty, AnimationTimeline) метод анимированного объекта. Укажите анимированное свойство в качестве первого параметра и
null
в качестве второго. Это удалит из свойства все часы анимации.Чтобы удалить определенный AnimationClock из списка часов, используйте Controller свойство AnimationClock извлекаемого ClockControllerобъекта, а затем вызовите Remove метод .ClockController Обычно это делается в обработчике Completed событий для часов. Обратите внимание, что только корневые часы могут управляться свойством ClockControllerController дочерних часов
null
. Обратите внимание, что Completed событие не будет вызываться, если эффективная продолжительность часов навсегда. В этом случае пользователю потребуется определить, когда следует вызывать Remove.
В основном это проблема для анимации объектов, имеющих длинное время жизни. Когда объект собирается как мусор, его часы отсоединяются и также собираются как мусор.
Дополнительные сведения об объектах часов см. в обзоре системы анимации и времени.