KeyTime Estructura
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í.
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. |