Partager via


KeyTime Structure

Définition

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

/// [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]"/>
Héritage
KeyTime
Attributs

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

Remarques

La propriété KeyTime de chaque image clé spécifie le moment où 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 uniquement par un entier sans caractères littéraux d’intervalle de temps tels que : ou . aboutira à un KeyTime de ce nombre de jours ! Il s’agit rarement du résultat prévu. Vous spécifiez généralement des intervalles de temps en secondes. Ainsi, la chaîne KeyTime inclut généralement les 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 certaines méthodes utilitaires, et son membre de données TimeSpan est exposé en tant que propriété en lecture seule, et non comme un champ.

Pour Microsoft .NET, Duration expose TimeSpan.Parse pour son TimeSpan, une méthode FromTimeSpan et un opérateur Implicite . Ceux-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 avec 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 à