SplineDoubleKeyFrame Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
public ref class SplineDoubleKeyFrame sealed : DoubleKeyFrame
/// [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 SplineDoubleKeyFrame final : DoubleKeyFrame
[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 SplineDoubleKeyFrame : DoubleKeyFrame
Public NotInheritable Class SplineDoubleKeyFrame
Inherits DoubleKeyFrame
<SplineDoubleKeyFrame .../>
- Herencia
- Atributos
Ejemplos
En este ejemplo XAML se mueve un rectángulo a través de una pantalla. En el ejemplo se usa la clase DoubleAnimationUsingKeyFrames para animar la propiedad X de un TranslateTransform aplicado a un rectángulo. Esta animación usa tres fotogramas clave de la siguiente manera:
- Durante los tres primeros segundos, usa una instancia de la clase LinearDoubleKeyFrame para mover el rectángulo a lo largo de una ruta de acceso a una velocidad estable desde su posición inicial hasta la posición 500. Los fotogramas clave lineales como LinearDoubleKeyFrame crean una transición lineal suave entre valores.
- Al final del cuarto segundo, usa una instancia de la clase DiscreteDoubleKeyFrame para mover repentinamente el rectángulo a la siguiente posición. Los fotogramas clave discretos como DiscreteDoubleKeyFrame crean saltos repentinos entre valores. En este ejemplo, el rectángulo está en la posición inicial y, a continuación, aparece repentinamente en la posición 500.
- En los dos segundos finales, usa una instancia de la clase SplineDoubleKeyFrame para volver a mover el rectángulo a su posición inicial. Los fotogramas clave spline, como SplineDoubleKeyFrame, crean una transición de variable entre valores según el valor de la propiedad KeySpline . En este ejemplo, el rectángulo comienza moviendo lentamente y luego acelera exponencialmente hacia el final del segmento de tiempo.
<StackPanel>
<StackPanel.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>
</StackPanel.Resources>
<Rectangle Fill="Blue" Width="50" Height="50" Loaded="Start_Animation">
<Rectangle.RenderTransform>
<TranslateTransform x:Name="MyAnimatedTranslateTransform"
X="0" Y="0" />
</Rectangle.RenderTransform>
</Rectangle>
</StackPanel>
// Start the animation when the object loads
private void Start_Animation(object sender, RoutedEventArgs e)
{
myStoryboard.Begin();
}
Comentarios
Las animaciones de fotograma clave permiten más de un valor de destino que se alcanza en un punto a lo largo de la escala de tiempo de animación. En otras palabras, cada fotograma clave puede especificar un valor intermedio diferente y el último fotograma clave alcanzado es el valor de animación final. Al especificar varios valores para animar, puede crear animaciones más complejas. Puede mezclar fotogramas clave discretos, lineales y spline en la misma colección de fotogramas clave.
Para obtener más información sobre cómo usar animaciones de fotograma clave, consulta Animaciones de fotograma clave y animaciones de función de aceleración.
Constructores
| Nombre | Description |
|---|---|
| SplineDoubleKeyFrame() |
Inicializa una nueva instancia de la clase SplineDoubleKeyFrame . |
Propiedades
| Nombre | Description |
|---|---|
| Dispatcher |
Siempre devuelve |
| DispatcherQueue |
Obtiene el objeto |
| KeySpline |
Obtiene o establece los dos puntos de control que definen el progreso de la animación para este fotograma clave. |
| KeySplineProperty |
Identifica la propiedad de dependencia KeySpline . |
| KeyTime |
Obtiene o establece la hora en la que se debe alcanzar el valor de destino del fotograma clave. (Heredado de DoubleKeyFrame) |
| Value |
Obtiene o establece el valor de destino del fotograma clave. (Heredado de DoubleKeyFrame) |
Métodos
| Nombre | Description |
|---|---|
| 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 llamando a RegisterPropertyChangedCallback. (Heredado de DependencyObject) |