Freigeben über


KeyTime Struktur

Definition

Gibt an, ob ein bestimmter Keyframe während einer Animation ausgeführt werden soll.

/// [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]"/>
Vererbung
KeyTime
Attribute

Windows-Anforderungen

Gerätefamilie
Windows 10 (eingeführt in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)

Beispiele

In diesem Beispiel wird die XAML-Attributsyntax verwendet, um KeyTime-Werte für verschiedene Typen von DoubleAnimationUsingKeyFrames-Klassen festzulegen.

<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

Hinweise

Die KeyTime-Eigenschaft jedes Keyframes gibt an, wann dieser Keyframe endet. Es gibt nicht an, wie lange der Keyframe wiedergegeben wird. Die Wiedergabedauer eines Keyframes hängt von der Animationsdauer, dem Zeitpunkt, an dem der Keyframe endet, und vom Zeitpunkt, an dem der vorherige Keyframe geendet hat, ab.

Wenn Sie eine KeyTime nur durch eine ganze Zahl ohne zeitspannenliterale Zeichen wie : oder angeben , ergibt sich eine KeyTime dieser Anzahl von Tagen! Dies ist selten das beabsichtigte Ergebnis. In der Regel geben Sie Zeitspannen in Sekunden an. Daher enthält die KeyTime-Zeichenfolge in der Regel vorangehende Nullwerte für Stunden und Minuten zusammen mit dem Literal : als Trennzeichen zwischen Stunden, Minuten und Sekunden. Wenn Sie beispielsweise eine KeyTime von fünf Sekunden angeben möchten, lautet die richtige Zeichenfolge "0:0:5" ("0:0:05" entspricht).

Hinweise zur XAML-Syntax

Sie können ein KeyTime-Objekt nicht als freigegebenes Objekt in einem ResourceDictionary deklarieren.

Projektion und Elemente von KeyTime

Wenn Sie eine Microsoft .NET-Sprache (C# oder Microsoft Visual Basic) oder Visual C++-Komponentenerweiterungen (C++/CX) verwenden, verfügt KeyTime über einige Hilfsmethoden, und das Datenelement TimeSpan wird als schreibgeschützte Eigenschaft und nicht als Feld verfügbar gemacht.

Für Microsoft .NET macht DurationTimeSpan.Parse für timeSpan, eine FromTimeSpan-Methode und einen Impliziten Operator verfügbar. Diese sind nicht über die -Struktur in Visual C++-Komponentenerweiterungen (C++/CX) verfügbar, aber Sie können KeyTimeHelper.FromTimeSpan verwenden.

Wenn Sie mit C++ mithilfe der Windows-Runtime Template Library (WRL) programmieren, ist nur das Datenmemberfeld TimeSpan als Mitglied von KeyTime vorhanden. WRL-Code kann auf FromTimeSpan zugreifen, wie er in der KeyTimeHelper-Klasse vorhanden ist.

Felder

TimeSpan

Die Zeitkomponente dieses KeyTime-Werts.

Gilt für: