Общие сведения об анимации и системе управления временем
В этом разделе описывается, как система управления временем использует анимацию, Timeline, и Clock классы для анимации свойств.
Предварительные требования
Чтобы понять содержимое этого раздела, необходимо знать, как использовать анимацию WPF для анимации свойств, как описано в разделе Общие сведения об эффектах анимации. В нем также можно ознакомиться со свойствами зависимостей. Дополнительные сведения см. в разделе Общие сведения о свойствах зависимостей.
Временные шкалы и часы
Общие сведения об анимации описано как Timeline представляет сегмент времени и анимации — это разновидность Timeline , формирующий значения выходных данных. Сама по себе Timeline, не выполняет никаких действий кроме описания сегмента времени. Он является временной шкалы Clock объект, который не работает. Аналогичным образом, анимация не выполняет анимирования фактически свойства: класс анимации описывает способ вычисления выходные значения, но это Clock , созданных для данной анимации, анимацию и применяет его к свойствам.
Объект Clock — это специальный тип объекта, который поддерживает состояние времени для выполнения Timeline. Он предоставляет три бита информации, которые необходимы для анимации и системы: Current
В большинстве случаев Clock создается автоматически для временной шкалы. При анимации с помощью Storyboard или Begin
Существует различных типа часов для различных типов шкал времени. В следующей таблице показаны Clock типы, которые соответствуют некоторым другим Timeline типов.
| Тип временной шкалы | Тип часов | Назначение часов |
|---|---|---|
| Анимация (наследует от Animation |
Animation |
Создает выходные значения для свойства зависимостей. |
| Media |
Media |
Обрабатывает файл мультимедиа. |
| Parallel |
Clock |
Группирует и управляет дочерними Clock объектов |
| Storyboard | Clock |
Группирует и управляет дочерними Clock объектов |
Можно применить любой Animation
В сценариях с высокой нагрузкой, например при анимации большого количества сходных объектов, управление использованием Clock использования может дать выигрыш в производительности.
Часы и диспетчер времени
При анимации объектов в WPF, это время диспетчер, который управляет Clock объектами, созданными для временных шкал. Диспетчер времени — это корень дерева объектов Clock, который управляет потоком времени в этом дереве. Диспетчер времени создается автоматически для каждого приложения WPF и остается невидимым для разработчика приложения. Диспетчер времени "тикает" много раз в секунду; фактическое число тактов, возникающих каждую секунду, зависит от доступных системных ресурсов. Во время каждой из этих тактов диспетчер времени вычисляет состояние всех Active Clock объектов в дереве расчета времени.
На следующем рисунке показано отношение между диспетчером времени и Animation

Анимирование свойства
Когда диспетчер времени "тикает", он обновляет время каждого Active Clock в приложении. Если Clock — Animation
Группы часов
Выше описаны различные типы Clock объектов для различных типов шкал времени. На следующем рисунке показано отношение между диспетчером времени Clock

ClockGroup
Композиция
Можно связать несколько часов с одним свойством. При этом каждые часы используют выходное значение предыдущих часов в качестве своего базового значения. На следующем рисунке показаны три Animation

Цепочка композиции
Обратите внимание, что, несмотря на то, что связь создается между входными и выходными из Animation
Чтобы применить несколько часов к тому же свойству, используйте Compose Handoff
Такты и объединение событий
В дополнение к расчету выходных значений тикающий диспетчер времени выполняет и другие операции: он определяет состояние всех часов и вызывает соответствующие события.
Хотя такты меняются часто, между ними может возникать множество событий. Например Clock может остановлен, запущен и остановлен снова в таком случае его Current
При Clock изменяет состояние и возвращается обратно в исходное состояние между тактами (например после изменения Active для Stopped и вернуться к Active), по-прежнему возникновении связанного события.
Дополнительные сведения о временных событиях см. в разделе Общие сведения о временных событиях.
Текущие и базовые значения свойств
Анимированное свойство может иметь два значения: базовое значение и текущее. При задании свойства с помощью метода доступа CLR или Set
При анимации свойства, Animation