Animatable.ApplyAnimationClock Метод

Определение

Анимирует указанный DependencyProperty с помощью указанного AnimationClock.

Перегрузки

Имя Описание
ApplyAnimationClock(DependencyProperty, AnimationClock)

Применяется к указанному объекту AnimationClockDependencyProperty. Если свойство уже анимировано, SnapshotAndReplace используется поведение передачи.

ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)

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

ApplyAnimationClock(DependencyProperty, AnimationClock)

Применяется к указанному объекту AnimationClockDependencyProperty. Если свойство уже анимировано, 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)

Применяется к указанному объекту AnimationClockDependencyProperty. Если свойство уже анимировано, используется указанный 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 это и SnapshotAndReplaceclockестьnull, все анимации будут удалены из указанного свойства (но не остановлены). Если handoffBehavior есть Compose и часы null, этот метод не действует.

handoffBehavior
HandoffBehavior

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

Реализации

Примеры

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

Комментарии

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

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

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

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

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

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

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

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

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