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


ImplicitAnimationCollection Класс

Определение

Коллекция анимаций, активируется при выполнении условия.

public ref class ImplicitAnimationCollection sealed : CompositionObject, IIterable<IKeyValuePair<Platform::String ^, ICompositionAnimationBase ^> ^>, IMap<Platform::String ^, ICompositionAnimationBase ^>
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Foundation.LiftedContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class ImplicitAnimationCollection final : CompositionObject, IIterable<IKeyValuePair<winrt::hstring, ICompositionAnimationBase const&>>, IMap<winrt::hstring, ICompositionAnimationBase const&>
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Foundation.WindowsAppSDKContract, 65536)]
class ImplicitAnimationCollection final : CompositionObject, IIterable<IKeyValuePair<winrt::hstring, ICompositionAnimationBase const&>>, IMap<winrt::hstring, ICompositionAnimationBase const&>
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Foundation.LiftedContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class ImplicitAnimationCollection : CompositionObject, IDictionary<string,ICompositionAnimationBase>, IEnumerable<KeyValuePair<string,ICompositionAnimationBase>>
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Foundation.WindowsAppSDKContract), 65536)]
public sealed class ImplicitAnimationCollection : CompositionObject, IDictionary<string,ICompositionAnimationBase>, IEnumerable<KeyValuePair<string,ICompositionAnimationBase>>
Public NotInheritable Class ImplicitAnimationCollection
Inherits CompositionObject
Implements IDictionary(Of String, ICompositionAnimationBase), IEnumerable(Of KeyValuePair(Of String, ICompositionAnimationBase))
Наследование
Object Platform::Object IInspectable CompositionObject ImplicitAnimationCollection
Атрибуты
Реализации

Примеры

class PropertyAnimation 
{ 
  PropertyAnimation(Compositor compositor, SpriteVisual heroVisual, SpriteVisual listVisual) 
  { 
    // Define ImplicitAnimationCollection 
    ImplicitAnimationCollection implicitAnimations = compositor.CreateImplicitAnimationCollection(); 

    // Trigger animation when the “Offset” property changes. 
    implicitAnimations["Offset"] = CreateAnimation(compositor); 

    // Assign ImplicitAnimations to a visual. Unlike Visual.Children,     
    // ImplicitAnimations can be shared by multiple visuals so that they  
    // share the same implicit animation behavior (same as Visual.Clip). 
    heroVisual.ImplicitAnimations = implicitAnimations; 

    // ImplicitAnimations can be shared among visuals  
    listVisual.ImplicitAnimations = implicitAnimations; 

    listVisual.Offset = new Vector3(20f, 20f, 20f); 
  } 

  Vector3KeyFrameAnimation CreateAnimation(Compositor compositor) 
  { 
    Vector3KeyFrameAnimation animation = compositor.CreateVector3KeyFrameAnimation(); 
    animation.InsertExpressionKeyFrame(0f, "this.StartingValue"); 
    animation.InsertExpressionKeyFrame(1f, "this.FinalValue"); 
    animation.Target = “Offset”; 
    animation.Duration = TimeSpan.FromSeconds(0.25); 
    return animation; 
  } 
} 

Комментарии

Неявные анимации позволяют управлять анимацией, указывая условия триггера, а не требуя ручного определения поведения анимации. Они помогают отделить логику запуска анимации от основной логики приложения. Вы определяете анимации и события, которые должны активировать эти анимации. Затем компонатор выполняет анимацию набора при соблюдении соответствующих условий триггера.

Триггеры

Условие выступает в качестве триггеров для ImplicitAnimationCollection. Эти триггеры являются анимируемыми свойствами CompositionObject. Для юбилейного обновления Windows 10 в качестве триггеров поддерживаются только анимируемые свойства Visual.

this.FinalValue

Это специальная ключевое слово в системе выражений композиции, которую разработчики могут использовать для создания шаблонов анимации и привязки платформы к значению API целевого свойства.

Анимации будут поддерживать эту функцию. FinalValue ключевое слово в качестве допустимого ключевое слово для обозначения конечного значения целевого свойства для анимации.

  • Неявные анимации — это. Параметру FinalValue будет присвоено последнее значение, которому было напрямую назначено соответствующее целевое свойство. Например, если свойству Offset визуального элемента присваивается напрямую, это будет иметь неявная анимация, предназначенная для свойства Offset. Параметру FinalValue присваивается новое значение Offset типа Vector3. Другие неявные анимации, предназначенные для различных свойств, например Size , по-прежнему смогут использовать эту функцию. FinalValue в шаблоне, и в этом случае это. Параметру FinalValue будет присвоено текущее значение свойства Size типа Vector2. Обратите внимание, что в последнем случае это. Параметр FinalValue будет таким же , как и этот. StartingValue . Это обеспечивает четко определенное поведение и позволяет разработчикам легко создавать шаблоны анимации . FinalValue всегда будет разрешаться в допустимое значение, независимо от того, какое свойство вызвало изменение.
  • Явные анимации. По умолчанию она будет иметь то же поведение, что и случай неявной анимации, где это. Параметру FinalValue будет присвоено последнее значение, которое было задано свойству напрямую. Например, анимации, предназначенные для свойства Size , будут иметь этот параметр. FinalValue разрешается до последнего известного значения Size на уровне API. Другими словами, это. Параметр FinalValue будет таким же , как и этот. StartingValue . Разработчик сможет переопределить это поведение и задать его. FinalValue имеет другое значение, явно задав его в качестве параметра анимации.

События и целевые свойства для ImplicitAnimationCollection и CompositionAnimationGroup

ImplicitAnimationCollection позволяет добавлять триггеры, которые будут отслеживать изменения и запускать связанные анимации, предоставленные разработчиком. ImplicitAnimationCollection поддерживает все анимируемые свойства Visual, которые также используются в качестве целевых свойств для анимации. Целевой объект должен быть определен в анимации, иначе это вызовет исключение.

implicitAnimationCollection[“Offset”] = offsetAnimationGroup;            

CompositionAnimationGroup содержит список CompositionAnimation , где их можно активировать как одну логическую единицу. Каждому объекту CompositionAnimation в группе должно быть задано целевое свойство.

CompositionAnimationGroup.Add(opacityKeyFrameAnimation);
CompositionAnimationGroup.Insert(sizeKeyFrameAnimation);

ImplicitAnimationCollection поддерживает следующие свойства в Visual:

Свойства

Comment

Строка, связанная с CompositionObject.

(Унаследовано от CompositionObject)
Compositor

Составитель, используемый для создания этого объекта CompositionObject.

(Унаследовано от CompositionObject)
DispatcherQueue

Возвращает DispatcherQueue для CompositionObject.

(Унаследовано от CompositionObject)
ImplicitAnimations

Коллекция неявных анимаций, присоединенных к этому объекту.

(Унаследовано от CompositionObject)
Properties

Коллекция свойств, связанных с CompositionObject.

(Унаследовано от CompositionObject)
Size

Размер коллекции.

Методы

Clear()

Удаляет все анимации из коллекции.

Close()

Закрывает объект CompositionObject и освобождает системные ресурсы.

(Унаследовано от CompositionObject)
Dispose()

Выполняет определяемые приложением задачи, связанные с удалением, высвобождением или сбросом неуправляемых ресурсов.

(Унаследовано от CompositionObject)
First()

Извлекает первую анимацию в коллекции.

GetView()

Возвращает представление карты коллекции.

HasKey(String)

Возвращает логическое значение, указывающее, содержит ли коллекция указанный ключ.

Insert(String, ICompositionAnimationBase)

Вставляет анимацию в коллекцию.

Lookup(String)

Извлекает анимацию, связанную с указанным свойством.

PopulatePropertyInfo(String, AnimationPropertyInfo)

Определяет свойство, которое можно анимировать.

(Унаследовано от CompositionObject)
Remove(String)

Удаляет указанную анимацию из коллекции.

StartAnimation(String, CompositionAnimation, AnimationController)

Подключает анимацию к указанному свойству объекта и запускает анимацию.

(Унаследовано от CompositionObject)
StartAnimation(String, CompositionAnimation)

Подключает анимацию к указанному свойству объекта и запускает анимацию.

(Унаследовано от CompositionObject)
StartAnimationGroup(ICompositionAnimationBase)

Запускает группу анимации.

Метод StartAnimationGroup в CompositionObject позволяет запустить CompositionAnimationGroup. Все анимации в группе будут запущены одновременно для объекта .

(Унаследовано от CompositionObject)
StopAnimation(String)

Отключает анимацию от указанного свойства и останавливает анимацию.

(Унаследовано от CompositionObject)
StopAnimationGroup(ICompositionAnimationBase)

Останавливает группу анимации.

(Унаследовано от CompositionObject)
TryGetAnimationController(String)

Возвращает AnimationController для анимации, выполняемой с указанным свойством.

(Унаследовано от CompositionObject)

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

См. также раздел