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)
Параметры
Свойство для анимации.
- 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)
Параметры
Свойство для анимации.
- 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.
Это в первую очередь проблема анимации для объектов с длительным временем существования. Когда объект подвергнут сборке мусора, его часы также будут отключены и подвергнуты сборке мусора.
Дополнительные сведения о объектах часов см. в разделе "Обзор системы анимации и времени".