Compartir a través de


KeyTime Estructura

Definición

Especifica si un fotograma clave en particular debe tener lugar durante una animación.

/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
struct KeyTime
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
public struct KeyTime
Public Structure KeyTime
<object property="[days.]hours:minutes:seconds[.fractionalSeconds]"/>
Herencia
KeyTime
Atributos

Ejemplos

En este ejemplo se usa la sintaxis de atributo XAML para establecer valores KeyTime en varios tipos de clases DoubleAnimationUsingKeyFrames .

<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();
}

Comentarios

La propiedad KeyTime de cada fotograma clave especifica cuándo finaliza ese fotograma clave. No especifica cuánto tiempo se reproduce el fotograma clave. La cantidad de tiempo durante el cual se reproduce un fotograma clave se determina en virtud del momento en que finaliza el fotograma clave, cuándo finaliza el fotograma clave anterior y la duración de la animación.

Especificar un valor KeyTime solo por un entero sin caracteres literales de intervalo de tiempo como : o . dará como resultado un valor KeyTime de ese número de días. Esto rara vez es el resultado previsto. Normalmente, se especifican intervalos de tiempo en segundos. Por lo tanto, la cadena KeyTime normalmente incluye valores cero anteriores para horas y minutos, junto con el literal : como separador entre horas, minutos y segundos. Por ejemplo, para especificar un valor KeyTime de cinco segundos, la cadena correcta es "0:0:5" ("0:0:05" es equivalente).

Notas sobre la sintaxis XAML

No se puede declarar keyTime como un objeto que se puede compartir en un ResourceDictionary.

Proyección y miembros de KeyTime

Si usa un lenguaje Microsoft .NET (C# o Microsoft Visual Basic) o extensiones de componentes de Visual C++ (C++/CX), KeyTime tiene algunos métodos de utilidad y su miembro de datos TimeSpan se expone como una propiedad de solo lectura, no como un campo.

Para Microsoft .NET, Duration expone TimeSpan.Parse para su TimeSpan, un método FromTimeSpan y un operador Implícito . No están disponibles en la estructura en extensiones de componentes de Visual C++ (C++/CX), pero puede usar KeyTimeHelper.FromTimeSpan.

Si está programando con C++ con la biblioteca de plantillas de Windows Runtime (WRL), solo el campo de miembro de datos TimeSpan existe como miembro de KeyTime. El código WRL puede acceder a FromTimeSpan tal como existe en la clase KeyTimeHelper .

Campos

TimeSpan

Componente de hora de keyTime.

Se aplica a