ColorAnimation 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 ColorAnimation sealed : Timeline
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class ColorAnimation final : Timeline
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class ColorAnimation final : Timeline
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class ColorAnimation : Timeline
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class ColorAnimation : Timeline
Public NotInheritable Class ColorAnimation
Inherits Timeline
<ColorAnimation .../>
- Herança
- Atributos
Requisitos do Windows
Família de dispositivos |
Windows 10 (introduzida na 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduzida na v1.0)
|
Exemplos
O exemplo a seguir mostra como usar ColorAnimation para animar a cor da tela de fundo de um StackPanel.
<StackPanel x:Name="myStackPanel" Background="Red"
Loaded="Start_Animation">
<StackPanel.Resources>
<Storyboard x:Name="colorStoryboard">
<!-- Animate the background color of the canvas from red to green
over 4 seconds. -->
<ColorAnimation Storyboard.TargetName="myStackPanel"
Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)"
From="Red" To="Blue" Duration="0:0:4"/>
</Storyboard>
</StackPanel.Resources>
</StackPanel>
<StackPanel x:Name="myStackPanel" Background="Red"
Loaded="Start_Animation">
<StackPanel.Resources>
<Storyboard x:Name="colorStoryboard">
<ColorAnimationUsingKeyFrames Storyboard.TargetName="myStackPanel"
Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
<!-- Go from green to red in the first 2 seconds. LinearColorKeyFrame creates
a smooth, linear animation between values. -->
<LinearColorKeyFrame Value="Blue" KeyTime="00:00:02" />
<!-- In the next half second, go to yellow. DiscreteColorKeyFrame creates a
sudden jump between values. -->
<DiscreteColorKeyFrame Value="Yellow" KeyTime="00:00:2.5" />
<!-- In the final 2 seconds of the animation, go from yellow back to green. SplineColorKeyFrame
creates a variable transition between values depending on the KeySpline property. In this example,
the animation starts off slow but toward the end of the time segment, it speeds up exponentially.-->
<SplineColorKeyFrame Value="Green" KeyTime="00:00:4.5" KeySpline="0.6,0.0 0.9,0.00" />
</ColorAnimationUsingKeyFrames>
</Storyboard>
</StackPanel.Resources>
</StackPanel>
<StackPanel Loaded="Start_Animation">
<StackPanel.Resources>
<Storyboard x:Name="colorStoryboard">
<!-- Animate the background color of the canvas from red to green
over 4 seconds. -->
<ColorAnimation Storyboard.TargetName="mySolidColorBrush"
Storyboard.TargetProperty="Color" From="Red" To="Blue" Duration="0:0:4"/>
</Storyboard>
</StackPanel.Resources>
<StackPanel.Background>
<SolidColorBrush x:Name="mySolidColorBrush" Color="Red" />
</StackPanel.Background>
</StackPanel>
// Start the animation when the object loads.
private void Start_Animation(object sender, RoutedEventArgs e)
{
colorStoryboard.Begin();
}
' Start the animation when the object loads
Private Sub Start_Animation(ByVal sender As Object, ByVal e As EventArgs)
colorStoryboard.Begin()
End Sub
Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)"
Como alternativa, você pode criar explicitamente o SolidColorBrush, nomeá-lo e direcionar sua propriedade Color diretamente. O exemplo a seguir mostra como criar a mesma animação que a anterior, exceto que ela usa direcionamento de propriedade direta.
<StackPanel Loaded="Start_Animation">
<StackPanel.Resources>
<Storyboard x:Name="colorStoryboard">
<!-- Animate the background color of the canvas from red to green
over 4 seconds. -->
<ColorAnimation Storyboard.TargetName="mySolidColorBrush"
Storyboard.TargetProperty="Color" From="Red" To="Blue" Duration="0:0:4"/>
</Storyboard>
</StackPanel.Resources>
<StackPanel.Background>
<SolidColorBrush x:Name="mySolidColorBrush" Color="Red" />
</StackPanel.Background>
</StackPanel>
// Start the animation when the object loads.
private void Start_Animation(object sender, RoutedEventArgs e)
{
colorStoryboard.Begin();
}
' Start the animation when the object loads
Private Sub Start_Animation(ByVal sender As Object, ByVal e As EventArgs)
colorStoryboard.Begin()
End Sub
Comentários
Use ColorAnimation para animar o valor da propriedade de qualquer propriedade de dependência do tipo Color.
A interpolação linear de uma Cor significa que cada um dos valores ARGB é tratado como um byte e a interpolação é simplesmente uma operação matemática. Você obterá os melhores resultados da interpolação de cores se pelo menos um dos componentes RGB for o mesmo ou próximo do mesmo no valor inicial e no valor final.
Normalmente, você precisa usar o direcionamento de propriedade indireto para direcionar uma subpropósia de outro objeto que é o valor de uma propriedade no destino. Isso ocorre porque pouquíssimas propriedades que exibem informações de cor em elementos de interface do usuário são, na verdade, do tipo Cor. A maioria é do tipo Brush. Para usar ColorAnimation em elementos de interface do usuário, você normalmente está direcionando a propriedade Color de um SolidColorBrush que é o valor da subpropósio. A sintaxe para isso é mostrada no exemplo XAML na seção "Exemplos". Para obter mais informações sobre direcionamento de propriedade indireto e outros conceitos de animação com storyboard, consulte Animações com storyboard ou sintaxe property-path.
Uma ColorAnimation 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 From e By .
- 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 .
- Somente por: 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 .
As propriedades From, By e To de um ColorAnimation não são estritamente uma Cor. Em vez disso, são anuláveis para Cor. O valor padrão para eles é nulo, não uma estrutura não inicializada. Esse valor nulo é como o sistema de animação distingue que você não definiu especificamente um valor. As extensões de componente do Visual C++ (C++/CX) não têm um tipo Nullable e, em vez dele, usam IReference.
Construtores
ColorAnimation() |
Inicializa uma nova instância da classe ColorAnimation . |
Propriedades
AutoReverse |
Obtém ou define um valor que indica se a linha do tempo é executada em ordem inversa após concluir uma iteração na ordem comum. (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 a quantidade total pela qual a animação altera seu valor inicial. |
ByProperty |
Identifica a propriedade de dependência Por . |
Dispatcher |
Obtém o CoreDispatcher ao qual esse objeto está associado. O CoreDispatcher representa uma instalação que pode acessar o DependencyObject no thread da interface do usuário, mesmo que o código seja iniciado por um thread que não seja da interface do usuário. (Herdado de DependencyObject) |
Duration |
Obtém ou define o período 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 essa 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 de repetição desta linha do tempo. (Herdado de Timeline) |
SpeedRatio |
Obtém ou define a taxa, em relação ao 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
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 nos 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 uma DependencyProperty específica nessa 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
Completed |
Ocorre quando o objeto Storyboard concluiu a reprodução. (Herdado de Timeline) |