KeyTime Estrutura
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Especifica quando um quadro-chave particular deve ocorrer durante uma animação.
/// [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]"/>
- Herança
-
KeyTime
- Atributos
Requisitos do Windows
Família de dispositivos |
Windows 10 (introduzida na 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduzida na v1.0)
|
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();
}
' Start the animation when the object loads
Private Sub Start_Animation(ByVal sender As Object, ByVal e As EventArgs)
myStoryboard.Begin()
End Sub
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 caracteres literais de intervalo de tempo, 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).
Observações sobre a sintaxe XAML
Não é possível 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 . Eles 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 de 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. |