ImplicitAnimationCollection Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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(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))
- Herança
- Atributos
- Implementações
-
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>>
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:
- AnchorPoint
- CenterPoint
- Deslocamento
- Opacidade
- Orientation
- RotationAngle
- RotationAngleInDegrees
- RotationAxis
- Escala
- Tamanho Se o mesmo valor for definido novamente, a animação não ocorrerá, pois não havia delta entre o valor anterior e o novo.
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) |
DispatcherQueue |
Obtém o DispatcherQueue para o CompositionObject. (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) |
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, AnimationController) |
Conecta uma animação com a propriedade especificada do objeto e inicia a animação. (Herdado de CompositionObject) |
StartAnimation(String, CompositionAnimation) |
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) |