Compartir a través de


ColorAnimation Clase

Definición

Anima el valor de una propiedad Color entre dos valores de destino mediante la interpolación lineal sobre una duración especificada.

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 .../>
Herencia
Object Platform::Object IInspectable DependencyObject Timeline ColorAnimation
Atributos

Requisitos de Windows

Familia de dispositivos
Windows 10 (se introdujo en la versión 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)

Ejemplos

En el ejemplo siguiente se muestra cómo usar ColorAnimation para animar el color de fondo de un 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, puede crear explícitamente solidColorBrush, asignarle el nombre y establecer como destino su propiedad Color directamente. En el ejemplo siguiente se muestra cómo crear la misma animación que la anterior, salvo que usa el destino de la propiedad directa.

<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

Comentarios

Use ColorAnimation para animar el valor de propiedad de cualquier propiedad de dependencia que sea de tipo Color.

La interpolación lineal de un color significa que cada uno de los valores ARGB se trata como un byte y la interpolación es simplemente una operación matemática. Obtiene los mejores resultados de la interpolación de colores si al menos uno de los componentes RGB es el mismo o cercano al mismo en el valor inicial y el valor final.

Normalmente, es necesario usar la propiedad indirecta que tiene como destino una subpropulación de otro objeto que es el valor de una propiedad en el destino. Esto se debe a que muy pocas propiedades que muestran información de color en los elementos de la interfaz de usuario son realmente de tipo Color. La mayoría son en lugar de tipo Brush. Para usar ColorAnimation en elementos de la interfaz de usuario, normalmente se dirige a la propiedad Color de un SolidColorBrush que es el valor de la subproperie. La sintaxis para esto se muestra en el ejemplo XAML de la sección "Ejemplos". Para obtener más información sobre el destino indirecto de propiedades y otros conceptos de animación con guion gráfico, consulta Animaciones con guion gráfico o sintaxis de ruta de acceso de propiedades.

Un ColorAnimation normalmente tiene al menos una de las propiedades From, By o To establecidas, pero nunca las tres.

  • Solo desde: La animación progresa del valor especificado por la propiedad From al valor base de la propiedad que se está animando.
  • De y a: La animación progresa del valor especificado por la propiedad From al valor especificado por la propiedad To .
  • De y por: La animación avanza del valor especificado por la propiedad From al valor especificado por la suma de las propiedades From y By .
  • Para solo: La animación avanza desde el valor base de la propiedad animada o el valor de salida de una animación anterior al valor especificado por la propiedad To .
  • Solo por: La animación avanza desde el valor base de la propiedad que se está animando o el valor de salida de una animación anterior hasta la suma de ese valor y el valor especificado por la propiedad By .

Las propiedades From, By y To de un ColorAnimation no son estrictamente un Color. En su lugar, son nullables para Color. El valor predeterminado para estos valores es NULL, no una estructura sin inicializar. Ese valor NULL es la forma en que el sistema de animación distingue que no se ha establecido específicamente un valor. Las extensiones del componente Visual C++ (C++/CX) no tienen un tipo NULL, por lo que usan IReference en su lugar.

Constructores

ColorAnimation()

Inicializa una nueva instancia de la clase ColorAnimation .

Propiedades

AutoReverse

Obtiene o establece un valor que indica si la escala de tiempo se reproduce en orden inverso después de completar una iteración de avance.

(Heredado de Timeline)
BeginTime

Obtiene o establece la hora en la que debe comenzar esta escala de tiempo .

(Heredado de Timeline)
By

Obtiene o establece la cantidad total por la que la animación cambia su valor inicial.

ByProperty

Identifica la propiedad de dependencia By .

Dispatcher

Obtiene el CoreDispatcher al que está asociado este objeto. CoreDispatcher representa una instalación que puede acceder a DependencyObject en el subproceso de la interfaz de usuario, incluso si un subproceso que no es de interfaz de usuario inicia el código.

(Heredado de DependencyObject)
Duration

Obtiene o establece la duración para la que se reproduce esta escala de tiempo, sin contar las repeticiones.

(Heredado de Timeline)
EasingFunction

Obtiene o establece la función de aceleración aplicada a esta animación.

EasingFunctionProperty

Identifica la propiedad de dependencia EasingFunction .

EnableDependentAnimation

Obtiene o establece un valor que declara si se deben permitir las propiedades animadas que se consideran animaciones dependientes para usar esta declaración de animación.

EnableDependentAnimationProperty

Identifica la propiedad de dependencia EnableDependentAnimation .

FillBehavior

Obtiene o establece un valor que especifica cómo se comporta la animación después de que llegue al final de su período activo.

(Heredado de Timeline)
From

Obtiene o establece el valor inicial de la animación.

FromProperty

Identifica la propiedad de dependencia From .

RepeatBehavior

Obtiene o establece el comportamiento de repetición de esta escala de tiempo.

(Heredado de Timeline)
SpeedRatio

Obtiene o establece la velocidad, en relación con su elemento primario, en el que avanza el tiempo para esta escala de tiempo.

(Heredado de Timeline)
To

Obtiene o establece el valor final de la animación.

ToProperty

Identifica la propiedad de dependencia To .

Métodos

ClearValue(DependencyProperty)

Borra el valor local de una propiedad de dependencia.

(Heredado de DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Devuelve cualquier valor base establecido para una propiedad de dependencia, que se aplicaría en los casos en los que una animación no está activa.

(Heredado de DependencyObject)
GetValue(DependencyProperty)

Devuelve el valor efectivo actual de una propiedad de dependencia de dependencyObject.

(Heredado de DependencyObject)
ReadLocalValue(DependencyProperty)

Devuelve el valor local de una propiedad de dependencia, si se establece un valor local.

(Heredado de DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registra una función de notificación para escuchar los cambios en una dependencyProperty específica en esta instancia de DependencyObject .

(Heredado de DependencyObject)
SetValue(DependencyProperty, Object)

Establece el valor local de una propiedad de dependencia en dependencyObject.

(Heredado de DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Cancela una notificación de cambio registrada anteriormente mediante una llamada a RegisterPropertyChangedCallback.

(Heredado de DependencyObject)

Eventos

Completed

Se produce cuando se ha completado la reproducción del objeto Storyboard .

(Heredado de Timeline)

Se aplica a

Consulte también