Поделиться через


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

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

Реализации

Комментарии

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

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

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

Часы, с помощью которых нужно анимировать указанное свойство. Если handoffBehaviorSnapshotAndReplace и clocknull, все анимации будут удалены из указанного свойства (но не остановлены). Если handoffBehaviorCompose и часы 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.

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

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

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