ImplicitAnimationCollection Classe

Definição

Uma coleção de animações disparadas quando uma condição é atendida.

public ref class ImplicitAnimationCollection sealed : CompositionObject, IIterable<IKeyValuePair<Platform::String ^, ICompositionAnimationBase ^> ^>, IMap<Platform::String ^, ICompositionAnimationBase ^>
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 196608)]
/// [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.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 196608)]
[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>>
Public NotInheritable Class ImplicitAnimationCollection
Inherits CompositionObject
Implements IDictionary(Of String, ICompositionAnimationBase), IEnumerable(Of KeyValuePair(Of String, ICompositionAnimationBase))
Herança
Object Platform::Object IInspectable CompositionObject ImplicitAnimationCollection
Atributos
Implementações

Requisitos do Windows

Família de dispositivos
Windows 10 Anniversary Edition (introduzida na 10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v3.0)

Exemplos

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; 
  } 
} 

Comentários

Animações implícitas permitem que você conduza animações especificando condições de gatilho em vez de exigir a definição manual do comportamento de animação. Eles ajudam a desacoplar a lógica de início da animação da lógica principal do aplicativo. Você define animações e os eventos que devem disparar essas animações. Em seguida, o compositor executa as animações definidas quando as condições de gatilho apropriadas são atendidas.

Gatilhos

A condição atua como gatilhos para ImplicitAnimationCollection. Esses gatilhos são propriedades animáveis CompositionObject. Para a Atualização de Aniversário do Windows 10, há suporte apenas para propriedades animáveis visuais como gatilhos.

this.FinalValue

Essa é uma palavra-chave especial no "sistema de Expressões de Composição" que os desenvolvedores podem usar para modelos de animações e permitir que a plataforma associe-a ao valor da API da propriedade de destino.

As animações darão suporte a isso. FinalValue palavra-chave como um palavra-chave válido para significar o valor final de uma propriedade de destino para uma animação.

  • Animações implícitas – o seguinte. FinalValue será definido como o último valor ao qual a propriedade de destino correspondente foi atribuída diretamente. Por exemplo, quando a propriedade Offset do visual é atribuída diretamente, animações implícitas direcionadas à propriedade Offset terão isso. FinalValue definido como o novo valor Offset , do tipo Vector3. Outras animações implícitas direcionadas a propriedades diferentes, por exemplo , Tamanho , ainda poderão usar isso. FinalValue no modelo e, nesse caso, isso. FinalValue será definido como o valor atual da propriedade Size , do tipo Vector2. Observe que, no último caso, isso. FinalValue será o mesmo que este. StartingValue . Isso fornece um comportamento bem definido e facilita para os desenvolvedores criar os modelos de animação como este. FinalValue sempre será resolvido para um valor válido, independentemente de qual propriedade tenha disparado a alteração.
  • Animações explícitas: por padrão, ela terá o mesmo comportamento que o caso da animação implícita, em que isso. FinalValue será definido como o último valor para o qual a propriedade foi definida diretamente. Por exemplo, animações direcionadas à propriedade Size terão isso. FinalValue resolvido para o último valor size conhecido na camada de API. Em outras palavras, isso. FinalValue será o mesmo que este. StartingValue . O desenvolvedor poderá substituir esse comportamento e defini-lo. FinalValue para um valor diferente definindo-o como um parâmetro de animação explicitamente.

Eventos e propriedades de destino para ImplicitAnimationCollection e CompositionAnimationGroup

ImplicitAnimationCollection permite adicionar gatilhos que a animação implícita monitorará para alterações e iniciará animações relacionadas, conforme fornecido pelo desenvolvedor. ImplicitAnimationCollection dá suporte a todas as propriedades animatáveis do Visual que também são usadas como propriedades de destino para animações. O destino deve ser definido na animação ou gerará uma exceção.

implicitAnimationCollection[“Offset”] = offsetAnimationGroup;            

CompositionAnimationGroup contém uma lista de CompositionAnimation em que eles podem ser disparados como uma única unidade lógica. Cada CompositionAnimation no grupo deve ter a propriedade de destino definida.

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

ImplicitAnimationCollection dá suporte às seguintes propriedades no Visual:

Propriedades

Comment

Uma cadeia de caracteres a ser associada ao CompositionObject.

(Herdado de CompositionObject)
Compositor

O Compositor usado para criar este CompositionObject.

(Herdado de CompositionObject)
Dispatcher

O dispatcher do CompositionObject.

(Herdado de CompositionObject)
DispatcherQueue

Obtém o DispatcherQueue para o CompostionObject.

(Herdado de CompositionObject)
ImplicitAnimations

A coleção de animações implícitas anexadas a esse objeto.

(Herdado de CompositionObject)
Properties

A coleção de propriedades associadas ao CompositionObject.

(Herdado de CompositionObject)
Size

O tamanho da coleção.

Métodos

Clear()

Remove todas as animações da coleção.

Close()

Fecha o CompositionObject e libera os recursos do sistema.

(Herdado de CompositionObject)
ConnectAnimation(String, CompositionAnimation)

Conecta e animação.

(Herdado de CompositionObject)
DisconnectAnimation(String)

Desconecta uma animação.

(Herdado de CompositionObject)
Dispose()

Realiza tarefas definidas pelo aplicativo associadas à liberação ou à redefinição de recursos não gerenciados.

(Herdado de CompositionObject)
First()

Recupera a primeira animação na coleção.

GetView()

Retorna uma exibição de mapa da coleção.

HasKey(String)

Retorna um booliano que indica se a coleção contém a chave especificada.

Insert(String, ICompositionAnimationBase)

Insere uma animação na coleção.

Lookup(String)

Recupera a animação associada à propriedade especificada.

PopulatePropertyInfo(String, AnimationPropertyInfo)

Define uma propriedade que pode ser animada.

(Herdado de CompositionObject)
Remove(String)

Remove a animação especificada da coleção.

StartAnimation(String, CompositionAnimation)

Conecta uma animação com a propriedade especificada do objeto e inicia a animação.

(Herdado de CompositionObject)
StartAnimation(String, CompositionAnimation, AnimationController)

Conecta uma animação com a propriedade especificada do objeto e inicia a animação.

(Herdado de CompositionObject)
StartAnimationGroup(ICompositionAnimationBase)

Inicia um grupo de animação.

O método StartAnimationGroup em CompositionObject permite iniciar CompositionAnimationGroup. Todas as animações no grupo serão iniciadas ao mesmo tempo no objeto .

(Herdado de CompositionObject)
StopAnimation(String)

Desconecta uma animação da propriedade especificada e interrompe a animação.

(Herdado de CompositionObject)
StopAnimationGroup(ICompositionAnimationBase)

Interrompe um grupo de animação.

(Herdado de CompositionObject)
TryGetAnimationController(String)

Retorna um AnimationController para a animação em execução na propriedade especificada.

(Herdado de CompositionObject)

Aplica-se a

Confira também