Animatable.ApplyAnimationClock Método
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.
Anima o DependencyProperty especificado usando o AnimationClockespecificado.
Sobrecargas
ApplyAnimationClock(DependencyProperty, AnimationClock) |
Aplica um AnimationClock ao DependencyPropertyespecificado. Se a propriedade já estiver animada, o comportamento de entrega SnapshotAndReplace será usado. |
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) |
Aplica um AnimationClock ao DependencyPropertyespecificado. Se a propriedade já estiver animada, o HandoffBehavior especificado será usado. |
ApplyAnimationClock(DependencyProperty, AnimationClock)
Aplica um AnimationClock ao DependencyPropertyespecificado. Se a propriedade já estiver animada, o comportamento de entrega SnapshotAndReplace será usado.
public:
virtual void ApplyAnimationClock(System::Windows::DependencyProperty ^ dp, System::Windows::Media::Animation::AnimationClock ^ clock);
public void ApplyAnimationClock (System.Windows.DependencyProperty dp, System.Windows.Media.Animation.AnimationClock clock);
abstract member ApplyAnimationClock : System.Windows.DependencyProperty * System.Windows.Media.Animation.AnimationClock -> unit
override this.ApplyAnimationClock : System.Windows.DependencyProperty * System.Windows.Media.Animation.AnimationClock -> unit
Public Sub ApplyAnimationClock (dp As DependencyProperty, clock As AnimationClock)
Parâmetros
A propriedade a ser animada.
- clock
- AnimationClock
O relógio com o qual animar a propriedade especificada. Se clock
for null
, todas as animações serão removidas da propriedade especificada (mas não interrompidas).
Implementações
Comentários
Observe que usar esse método para remover relógios de uma propriedade não interrompe esses relógios.
Aplica-se a
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)
Aplica um AnimationClock ao DependencyPropertyespecificado. Se a propriedade já estiver animada, o HandoffBehavior especificado será usado.
public:
virtual void ApplyAnimationClock(System::Windows::DependencyProperty ^ dp, System::Windows::Media::Animation::AnimationClock ^ clock, System::Windows::Media::Animation::HandoffBehavior handoffBehavior);
public void ApplyAnimationClock (System.Windows.DependencyProperty dp, System.Windows.Media.Animation.AnimationClock clock, System.Windows.Media.Animation.HandoffBehavior handoffBehavior);
abstract member ApplyAnimationClock : System.Windows.DependencyProperty * System.Windows.Media.Animation.AnimationClock * System.Windows.Media.Animation.HandoffBehavior -> unit
override this.ApplyAnimationClock : System.Windows.DependencyProperty * System.Windows.Media.Animation.AnimationClock * System.Windows.Media.Animation.HandoffBehavior -> unit
Public Sub ApplyAnimationClock (dp As DependencyProperty, clock As AnimationClock, handoffBehavior As HandoffBehavior)
Parâmetros
A propriedade a ser animada.
- clock
- AnimationClock
O relógio com o qual animar a propriedade especificada. Se handoffBehavior
for SnapshotAndReplace e clock
for null
, todas as animações serão removidas da propriedade especificada (mas não interrompidas). Se handoffBehavior
for Compose e o relógio for null
, esse método não terá efeito.
- handoffBehavior
- HandoffBehavior
Um valor que especifica como a nova animação deve interagir com as animações atuais que já afetam o valor da propriedade.
Implementações
Exemplos
O exemplo a seguir mostra como aplicar relógios de animação usando configurações de HandoffBehavior diferentes.
Comentários
Observe que usar esse método para remover relógios de uma propriedade não interrompe esses relógios.
Usando o HandoffBehavior do Compose
Quando você aplica um Storyboard, AnimationTimelineou AnimationClock a uma propriedade usando o ComposeHandoffBehavior, todos os objetos Clock anteriormente associados a essa propriedade continuam a consumir recursos do sistema; o sistema de tempo não removerá esses relógios automaticamente.
Para evitar problemas de desempenho quando você aplica um grande número de relógios usando Compose, remova os relógios de composição da propriedade animada após a conclusão deles. Há várias maneiras de remover um relógio.
Para remover todos os relógios de uma propriedade, use o método ApplyAnimationClock(DependencyProperty, AnimationClock) ou BeginAnimation(DependencyProperty, AnimationTimeline) do objeto animado. Especifique a propriedade que está sendo animada como o primeiro parâmetro e
null
como a segunda. Isso removerá todos os relógios de animação da propriedade.Para remover um AnimationClock específico de uma lista de relógios, use a propriedade Controller do AnimationClock para recuperar um ClockControllere, em seguida, chame o método Remove do ClockController. Normalmente, isso é feito no manipulador de eventos Completed para um relógio. Observe que somente relógios raiz podem ser controlados por um ClockController; a propriedade Controller de um relógio filho retornará
null
. Observe também que o evento Completed não será chamado se a duração efetiva do relógio for para sempre. Nesse caso, o usuário precisará determinar quando chamar Remove.
Esse é um problema principalmente para animações em objetos que têm um longo tempo de vida. Quando um objeto é coletado, seus relógios também serão desconectados e o lixo coletado.
Para obter mais informações sobre objetos de relógio, consulte a visão geral do sistema de animação e tempo .