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


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 это и clocknullестьSnapshotAndReplace, все анимации будут удалены из указанного свойства (но не остановлены). Если handoffBehavior есть Compose и часы null, этот метод не действует.

handoffBehavior
HandoffBehavior

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

Реализации

Примеры

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

Комментарии

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

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

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

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

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

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

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

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

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