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 параметров.

Комментарии

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

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

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

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

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

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

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

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

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