Compartilhar via


KeyTime Estrutura

Definição

Especifica quando um quadro-chave particular deve ocorrer durante uma animação.

/// [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]"/>
Herança
KeyTime
Atributos

Exemplos

Este exemplo usa a sintaxe de atributo XAML para definir valores KeyTime em vários tipos 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();
}

Comentários

A propriedade KeyTime de cada quadro-chave especifica quando esse quadro-chave termina. Ele não especifica por quanto tempo o quadro-chave é reproduzido. O tempo durante o qual um quadro-chave é reproduzido é determinado pelo tempo em que o quadro-chave é encerrado, pelo tempo em que o quadro-chave anterior foi encerrado e pela duração da animação.

Especificar um KeyTime apenas por um inteiro sem nenhum intervalo de tempo literal caracteres como : ou . resultará em um KeyTime desse número de dias! Este raramente é o resultado pretendido. Normalmente, você especifica intervalos de tempo em segundos. Portanto, a cadeia de caracteres KeyTime normalmente inclui valores zero anteriores para horas e minutos, juntamente com o literal : como separador entre horas, minutos e segundos. Por exemplo, para especificar um KeyTime de cinco segundos, a cadeia de caracteres correta é "0:0:5" ("0:0:05" é equivalente).

Anotações sobre a sintaxe XAML

Você não pode declarar um KeyTime como um objeto compartilhável em um ResourceDictionary.

Projeção e membros do KeyTime

Se você estiver usando uma linguagem Microsoft .NET (C# ou Microsoft Visual Basic) ou extensões de componente do Visual C++ (C++/CX), o KeyTime terá alguns métodos utilitários e seu membro de dados TimeSpan será exposto como uma propriedade somente leitura, não um campo.

Para o Microsoft .NET, Duration expõe TimeSpan.Parse para seu TimeSpan, um método FromTimeSpan e um operador Implicit . Elas não estão disponíveis na estrutura em extensões de componente do Visual C++ (C++/CX), mas você pode usar KeyTimeHelper.FromTimeSpan.

Se você estiver programando com C++ usando a WRL (Biblioteca de Modelos Windows Runtime), somente o campo membro de dados TimeSpan existirá como membro do KeyTime. O código WRL pode acessar FromTimeSpan como ele existe na classe KeyTimeHelper .

Campos

TimeSpan

O componente de tempo deste KeyTime.

Aplica-se a