Condividi tramite


KeyTime Struct

Definizione

Specifica quando eseguire un particolare fotogramma chiave durante un'animazione.

/// [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]"/>
Ereditarietà
KeyTime
Attributi

Requisiti Windows

Famiglia di dispositivi
Windows 10 (è stato introdotto in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)

Esempio

Questo esempio usa la sintassi degli attributi XAML per impostare i valori KeyTime in diversi tipi di classi 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

Commenti

La proprietà KeyTime di ogni fotogramma chiave specifica quando termina il fotogramma chiave. Non specifica per quanto tempo viene riprodotto il fotogramma chiave. La quantità di tempo di riproduzione di un fotogramma chiave dipende da quando termina il fotogramma chiave, da quando è terminato il fotogramma chiave precedente e dalla durata dell'animazione.

Se si specifica un valore KeyTime solo per un numero intero senza caratteri letterali intervallo di tempo, ad esempio : o . genererà un valore KeyTime di tale numero di giorni. Questo è raramente il risultato previsto. In genere si specificano intervalli di tempo in secondi. La stringa KeyTime include in genere valori zero precedenti per ore e minuti, insieme al valore letterale : come separatore tra ore, minuti e secondi. Ad esempio, per specificare un valore KeyTime di cinque secondi, la stringa corretta è "0:0:5" ("0:0:05" è equivalente).

Note sulla sintassi XAML

Non è possibile dichiarare keyTime come oggetto condivisibile in un oggetto ResourceDictionary.

Proiezione e membri di KeyTime

Se si usa un linguaggio Microsoft .NET (C# o Microsoft Visual Basic) o estensioni del componente Visual C++ (C++/CX), KeyTime include alcuni metodi di utilità e il relativo membro dati TimeSpan viene esposto come proprietà di sola lettura, non come campo.

Per Microsoft .NET, Duration espone TimeSpan.Parse per timeSpan, un metodo FromTimeSpan e un operatore Implicit . Non sono disponibili dalla struttura nelle estensioni del componente Visual C++ (C++/CX), ma è possibile usare KeyTimeHelper.FromTimeSpan.

Se si esegue la programmazione con C++ usando la libreria di modelli di Windows Runtime (WRL), esiste solo il campo del membro dati TimeSpan come membro di KeyTime. Il codice WRL può accedere a FromTimeSpan perché esiste nella classe KeyTimeHelper .

Campi

TimeSpan

Componente dell'ora di questo KeyTime.

Si applica a