KeyTime Struktur
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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. |