ImplicitAnimationCollection Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Colección de animaciones desencadenadas cuando se cumple una condición.
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))
- Herencia
- Atributos
- Implementaciones
-
IDictionary<String,ICompositionAnimationBase> IMap<Platform::String,ICompositionAnimationBase> IMap<winrt::hstring,ICompositionAnimationBase> IIterable<IKeyValuePair<K,V>> IEnumerable<KeyValuePair<K,V>> IEnumerable<KeyValuePair<String,ICompositionAnimationBase>> IIterable<IKeyValuePair<Platform::String,ICompositionAnimationBase>> IIterable<IKeyValuePair<winrt::hstring,ICompositionAnimationBase>>
Ejemplos
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;
}
}
Comentarios
Las animaciones implícitas permiten controlar las animaciones especificando condiciones de desencadenador en lugar de requerir la definición manual del comportamiento de animación. Ayudan a desacoplar la lógica de inicio de la animación de la lógica de la aplicación principal. Define animaciones y los eventos que deben desencadenar estas animaciones. A continuación, el compositor ejecuta las animaciones set cuando se cumplen las condiciones de desencadenador adecuadas.
Desencadenadores
La condición actúa como desencadenadores para ImplicitAnimationCollection. Estos desencadenadores son propiedades animables compositionObject. En el caso de la actualización de aniversario de Windows 10, solo se admiten las propiedades visual animables como desencadenadores.
this.FinalValue
Se trata de una palabra clave especial dentro del "sistema de expresiones de composición" que los desarrolladores pueden usar para crear plantillas de sus animaciones y permitir que la plataforma la enlace al valor de la API de la propiedad de destino.
Las animaciones admitirán esto. Palabra clave FinalValue como una palabra clave válida para indicar el valor final de una propiedad de destino para una animación.
- Animaciones implícitas: el objeto . FinalValue se establecerá en el último valor al que se asignó directamente la propiedad de destino correspondiente. Por ejemplo, cuando la propiedad Offset del objeto visual se asigna directamente, las animaciones implícitas que tienen como destino la propiedad Offset tendrán esto. FinalValue se establece en el nuevo valor Offset , de tipo Vector3. Otras animaciones implícitas que tienen como destino propiedades diferentes, por ejemplo , Size , seguirán siendo capaces de usar el objeto . FinalValue en la plantilla y, en ese caso , esto. FinalValue se establecerá en el valor actual de la propiedad Size , de tipo Vector2. Tenga en cuenta que, en este último caso , esto. FinalValue será el mismo que este. StartingValue . Esto proporciona un comportamiento bien definido y facilita a los desarrolladores la creación de las plantillas de animación como esta. FinalValue siempre se resolverá en un valor válido, independientemente de la propiedad que haya desencadenado el cambio.
- Animaciones explícitas: de forma predeterminada tendrá el mismo comportamiento que el caso de la animación implícita, donde esto. FinalValue se establecerá en el último valor en el que la propiedad se estableció directamente. Por ejemplo, las animaciones que tienen como destino la propiedad Size tendrán esto. FinalValue se resolvió en el último valor de Tamaño conocido en la capa de API. En otras palabras, esto. FinalValue será el mismo que este. StartingValue . El desarrollador podrá invalidar ese comportamiento y establecerlo. FinalValue en un valor diferente estableciendolo como un parámetro de animación explícitamente.
Eventos y propiedades de destino para ImplicitAnimationCollection y CompositionAnimationGroup
ImplicitAnimationCollection permite agregar desencadenadores que la animación implícita supervisará los cambios y iniciará las animaciones relacionadas, tal como lo proporciona el desarrollador. ImplicitAnimationCollection admite todas las propiedades visual que se pueden animar, que también se usan como propiedades de destino para las animaciones. El destino debe definirse en la animación o producirá una excepción.
implicitAnimationCollection[“Offset”] = offsetAnimationGroup;
CompositionAnimationGroup contiene una lista de CompositionAnimation donde se pueden desencadenar como una sola unidad lógica. Cada CompositionAnimation del grupo debe tener establecida la propiedad de destino.
CompositionAnimationGroup.Add(opacityKeyFrameAnimation);
CompositionAnimationGroup.Insert(sizeKeyFrameAnimation);
ImplicitAnimationCollection admite las siguientes propiedades en Visual:
- AnchorPoint
- CenterPoint
- Offset
- Opacidad
- Orientación
- RotationAngle
- RotationAngleInDegrees
- RotationAxis
- Escala
- Tamaño Si se vuelve a establecer el mismo valor, la animación no se producirá, ya que no se produjo una diferencia entre el valor anterior y el nuevo.
Propiedades
Comment |
Cadena que se va a asociar con compositionObject. (Heredado de CompositionObject) |
Compositor |
Compositor que se usa para crear este CompositionObject. (Heredado de CompositionObject) |
DispatcherQueue |
Obtiene dispatcherQueue para compositionObject. (Heredado de CompositionObject) |
ImplicitAnimations |
Colección de animaciones implícitas adjuntas a este objeto. (Heredado de CompositionObject) |
Properties |
Colección de propiedades asociadas a CompositionObject. (Heredado de CompositionObject) |
Size |
Tamaño de la colección. |
Métodos
Clear() |
Quita todas las animaciones de la colección. |
Close() |
Cierra compositionObject y libera los recursos del sistema. (Heredado de CompositionObject) |
Dispose() |
Realiza tareas definidas por la aplicación asociadas a la liberación o al restablecimiento de recursos no administrados. (Heredado de CompositionObject) |
First() |
Recupera la primera animación de la colección. |
GetView() |
Devuelve una vista de mapa de la colección. |
HasKey(String) |
Devuelve un valor booleano que indica si la colección contiene la clave especificada. |
Insert(String, ICompositionAnimationBase) |
Inserta una animación en la colección. |
Lookup(String) |
Recupera la animación asociada a la propiedad especificada. |
PopulatePropertyInfo(String, AnimationPropertyInfo) |
Define una propiedad que se puede animar. (Heredado de CompositionObject) |
Remove(String) |
Quita la animación especificada de la colección. |
StartAnimation(String, CompositionAnimation, AnimationController) |
Conecta una animación con la propiedad especificada del objeto e inicia la animación. (Heredado de CompositionObject) |
StartAnimation(String, CompositionAnimation) |
Conecta una animación con la propiedad especificada del objeto e inicia la animación. (Heredado de CompositionObject) |
StartAnimationGroup(ICompositionAnimationBase) |
Inicia un grupo de animación. El método StartAnimationGroup en CompositionObject permite iniciar CompositionAnimationGroup. Todas las animaciones del grupo se iniciarán al mismo tiempo en el objeto . (Heredado de CompositionObject) |
StopAnimation(String) |
Desconecta una animación de la propiedad especificada y detiene la animación. (Heredado de CompositionObject) |
StopAnimationGroup(ICompositionAnimationBase) |
Detiene un grupo de animaciones. (Heredado de CompositionObject) |
TryGetAnimationController(String) |
Devuelve un AnimationController para la animación que se ejecuta en la propiedad especificada. (Heredado de CompositionObject) |