DoubleAnimation 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.
public ref class DoubleAnimation sealed : Timeline
/// [Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class DoubleAnimation final : Timeline
[Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class DoubleAnimation : Timeline
Public NotInheritable Class DoubleAnimation
Inherits Timeline
<DoubleAnimation />
- Herança
- Atributos
Exemplos
O exemplo a seguir mostra como usar DoubleAnimation para criar um retângulo que desaparece dentro e fora de exibição depois que ele é carregado.
<StackPanel>
<StackPanel.Resources>
<Storyboard x:Name="myStoryboard">
<DoubleAnimation
Storyboard.TargetName="MyAnimatedRectangle"
Storyboard.TargetProperty="Opacity"
From="1.0" To="0.0" Duration="0:0:3"
AutoReverse="True" RepeatBehavior="Forever" />
</Storyboard>
</StackPanel.Resources>
<Rectangle Loaded="Start_Animation" x:Name="MyAnimatedRectangle"
Width="100" Height="100" Fill="Blue" />
</StackPanel>
// Start the animation when the object loads
private void Start_Animation(object sender, RoutedEventArgs e)
{
myStoryboard.Begin();
}
<Canvas>
<Canvas.Resources>
<Storyboard x:Name="myStoryboard">
<!-- Animate the TranslateTransform's X property
from 0 to 350, then 50, then 200 over 10 seconds. -->
<DoubleAnimationUsingKeyFrames
Storyboard.TargetName="MyAnimatedTranslateTransform"
Storyboard.TargetProperty="X"
Duration="0:0:10" EnableDependentAnimation="True">
<!-- Using a LinearDoubleKeyFrame, the rectangle moves
steadily from its starting position to 500 over
the first 3 seconds. -->
<LinearDoubleKeyFrame Value="500" KeyTime="0:0:3" />
<!-- Using a DiscreteDoubleKeyFrame, the rectangle suddenly
appears at 400 after the fourth second of the animation. -->
<DiscreteDoubleKeyFrame Value="400" KeyTime="0:0:4" />
<!-- Using a SplineDoubleKeyFrame, the rectangle moves
back to its starting point. The animation starts out slowly at
first and then speeds up. This KeyFrame ends after the 6th
second. -->
<SplineDoubleKeyFrame KeySpline="0.6,0.0 0.9,0.00" Value="0" KeyTime="0:0:6" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</Canvas.Resources>
<Rectangle PointerPressed="Pointer_Clicked" Fill="Blue"
Width="50" Height="50">
<Rectangle.RenderTransform>
<TranslateTransform x:Name="MyAnimatedTranslateTransform" />
</Rectangle.RenderTransform>
</Rectangle>
</Canvas>
// Start the animation when the object loads
private void Start_Animation(object sender, RoutedEventArgs e)
{
myStoryboard.Begin();
}
Comentários
Use DoubleAnimation para animar o valor da propriedade de qualquer propriedade de dependência do tipo Double.
Às vezes, você precisará usar o direcionamento indireto de propriedade para direcionar uma sub-propriedade de outro objeto que seja o valor de uma propriedade no destino. Por exemplo, para animar o componente X de um RenderTransform de um UIElement, você precisa referenciar alguns dos valores intermediários de propriedade de objeto, até que a última etapa no caminho da propriedade indireta seja realmente um valor Duplo , como é o caso de TranslateTransform.X. A cadeia de caracteres correta a ser usada para Storyboard.TargetProperty neste exemplo é "(UIElement.RenderTransform). (TranslateTransform.X)". Para obter mais informações sobre direcionamento de propriedade indireta e outros conceitos de animação storyboarded, consulte animações storyboarded.
Uma DoubleAnimation normalmente tem pelo menos uma das propriedades From, By ou To definidas, mas nunca todas as três.
- Somente de: A animação progride do valor especificado pela propriedade From para o valor base da propriedade que está sendo animada.
- De e para: A animação progride do valor especificado pela propriedade From para o valor especificado pela propriedade To .
- De e por: A animação progride do valor especificado pela propriedade From para o valor especificado pela soma das propriedades De e Por .
- Somente para: A animação progride do valor base da propriedade animada ou do valor de saída de uma animação anterior para o valor especificado pela propriedade To .
- Por apenas: A animação progride do valor base da propriedade que está sendo animada ou do valor de saída de uma animação anterior para a soma desse valor e o valor especificado pela propriedade By .
Você não pode animar os valores X e Y de um Ponto usando um DoubleAnimation, pois essas propriedades não são propriedades de dependência (Point é uma estrutura e não pode ter propriedades de dependência.) Em vez disso, use PointAnimation para animar propriedades de dependência que têm um valor point .
Você também não pode usar DoubleAnimation para animar valores de bytes ou valores de int. Em vez disso, você precisará usar ObjectAnimationUsingKeyFrames, o que não lhe dará um comportamento de interpolação, portanto, talvez seja necessário definir vários quadros-chave para obter uma animação razoavelmente suave. Não há muitas propriedades de dependência relacionadas à interface do usuário que usam valores de bytes ou valores de bytesint, portanto, esse não deve ser um cenário comum que não seja para propriedades personalizadas.
As propriedades From, By ou To de um DoubleAnimation não são estritamente um Double. Em vez disso, estas são uma anulável para Double. O valor padrão para eles é nulo, não 0. Esse valor nulo é como o sistema de animação distingue que você não definiu especificamente um valor. O C++ não tem um tipo anulável , portanto, ele usa IReference .
Construtores
| Nome | Description |
|---|---|
| DoubleAnimation() |
Inicializa uma nova instância da classe DoubleAnimation . |
Propriedades
| Nome | Description |
|---|---|
| AutoReverse |
Obtém ou define um valor que indica se a linha do tempo é reproduzida ao contrário depois de concluir uma iteração para frente. (Herdado de Timeline) |
| BeginTime |
Obtém ou define a hora em que essa Linha do Tempo deve começar. (Herdado de Timeline) |
| By |
Obtém ou define o valor total pelo qual a animação altera seu valor inicial. |
| ByProperty |
Identifica a propriedade Por dependência. |
| Dispatcher |
Sempre retorna |
| DispatcherQueue |
Obtém o |
| Duration |
Obtém ou define o período de tempo para o qual essa linha do tempo é reproduzida, sem contar repetições. (Herdado de Timeline) |
| EasingFunction |
Obtém ou define a função de easing aplicada a esta animação. |
| EasingFunctionProperty |
Identifica a propriedade de dependência EasingFunction . |
| EnableDependentAnimation |
Obtém ou define um valor que declara se as propriedades animadas consideradas animações dependentes devem ter permissão para usar essa declaração de animação. |
| EnableDependentAnimationProperty |
Identifica a propriedade de dependência EnableDependentAnimation . |
| FillBehavior |
Obtém ou define um valor que especifica como a animação se comporta depois de atingir o final de seu período ativo. (Herdado de Timeline) |
| From |
Obtém ou define o valor inicial da animação. |
| FromProperty |
Identifica a propriedade De dependência. |
| RepeatBehavior |
Obtém ou define o comportamento recorrente dessa linha do tempo. (Herdado de Timeline) |
| SpeedRatio |
Obtém ou define a taxa, relativa ao seu pai, em que o tempo progride para esta Linha do Tempo. (Herdado de Timeline) |
| To |
Obtém ou define o valor final da animação. |
| ToProperty |
Identifica a propriedade De dependência. |
Métodos
| Nome | Description |
|---|---|
| ClearValue(DependencyProperty) |
Limpa o valor local de uma propriedade de dependência. (Herdado de DependencyObject) |
| GetAnimationBaseValue(DependencyProperty) |
Retorna qualquer valor base estabelecido para uma propriedade de dependência, que se aplicaria em casos em que uma animação não está ativa. (Herdado de DependencyObject) |
| GetValue(DependencyProperty) |
Retorna o valor efetivo atual de uma propriedade de dependência de um DependencyObject. (Herdado de DependencyObject) |
| ReadLocalValue(DependencyProperty) |
Retorna o valor local de uma propriedade de dependência, se um valor local for definido. (Herdado de DependencyObject) |
| RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Registra uma função de notificação para escutar alterações em um DependencyProperty específico nesta instância dependencyObject . (Herdado de DependencyObject) |
| SetValue(DependencyProperty, Object) |
Define o valor local de uma propriedade de dependência em um DependencyObject. (Herdado de DependencyObject) |
| UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Cancela uma notificação de alteração que foi registrada anteriormente chamando RegisterPropertyChangedCallback. (Herdado de DependencyObject) |
Eventos
| Nome | Description |
|---|---|
| Completed |
Ocorre quando o objeto Storyboard foi concluído. (Herdado de Timeline) |