Partager via


KeyTime Structure

Définition

Spécifie quand une image clé particulière doit prendre place pendant une animation.

/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
struct KeyTime
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
public struct KeyTime
Public Structure KeyTime
<object property="[days.]hours:minutes:seconds[.fractionalSeconds]"/>
Héritage
KeyTime
Attributs

Configuration requise pour Windows

Famille d’appareils
Windows 10 (introduit dans 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v1.0)

Exemples

Cet exemple utilise la syntaxe d’attribut XAML pour définir des valeurs KeyTime sur plusieurs types de classes 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();
}
' Start the animation when the object loads
Private Sub Start_Animation(ByVal sender As Object, ByVal e As EventArgs)
    myStoryboard.Begin()
End Sub

Remarques

La propriété KeyTime de chaque image clé spécifie quand cette trame clé se termine. Il ne spécifie pas la durée de lecture de l’image clé. La durée de lecture d’une image clé est déterminée par le moment où l’image clé se termine, par le moment où l’image clé précédente a pris fin et par la durée de l’animation.

La spécification d’un KeyTime par un entier uniquement sans caractères littéraux d’intervalle de temps tels que : ou . entraîne un KeyTime de ce nombre de jours ! Il s’agit rarement du résultat prévu. En règle générale, vous spécifiez des intervalles de temps en secondes. Ainsi, la chaîne KeyTime inclut généralement des valeurs zéro précédentes pour les heures et les minutes, ainsi que le littéral : comme séparateur entre heures, minutes et secondes. Par exemple, pour spécifier un KeyTime de cinq secondes, la chaîne correcte est « 0:0:5 » (« 0:0:05 » est équivalent).

Remarques sur la syntaxe XAML

Vous ne pouvez pas déclarer un KeyTime en tant qu’objet partageable dans un ResourceDictionary.

Projection et membres de KeyTime

Si vous utilisez un langage Microsoft .NET (C# ou Microsoft Visual Basic) ou des extensions de composant Visual C++ (C++/CX), KeyTime a des méthodes utilitaires et son membre de données TimeSpan est exposé en tant que propriété en lecture seule, et non en tant que champ.

Pour Microsoft .NET, Duration expose TimeSpan.Parse pour son TimeSpan, une méthode FromTimeSpan et un opérateur Implicite . Celles-ci ne sont pas disponibles à partir de la structure dans les extensions de composant Visual C++ (C++/CX), mais vous pouvez utiliser KeyTimeHelper.FromTimeSpan.

Si vous programmez en C++ à l’aide de la bibliothèque de modèles Windows Runtime (WRL), seul le champ de membre de données TimeSpan existe en tant que membre de KeyTime. Le code WRL peut accéder à FromTimeSpan tel qu’il existe sur la classe KeyTimeHelper .

Champs

TimeSpan

Composant de temps de ce KeyTime.

S’applique à