DiscretePointKeyFrame Classe
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.
public ref class DiscretePointKeyFrame sealed : PointKeyFrame
/// [Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class DiscretePointKeyFrame final : PointKeyFrame
[Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class DiscretePointKeyFrame : PointKeyFrame
Public NotInheritable Class DiscretePointKeyFrame
Inherits PointKeyFrame
<DiscretePointKeyFrame />
- Herança
- Atributos
Exemplos
Este exemplo XAML move uma elipse ao longo de um caminho triangular. O exemplo usa a classe PointAnimationUsingKeyFrames para animar a propriedade Center de um EllipseGeometry. Essa animação usa três quadros-chave da seguinte maneira:
- Durante o primeiro semestre, ele usa uma instância da classe LinearPointKeyFrame para mover a elipse ao longo de um caminho a uma taxa constante de sua posição inicial. Quadros-chave lineares, como LinearPointKeyFrame , criam uma interpolação linear suave entre valores.
- Durante o final do segundo semestre seguinte, ele usa uma instância da classe DiscretePointKeyFrame para mover repentinamente a elipse ao longo do caminho para a próxima posição. Quadros-chave discretos como DiscretePointKeyFrame criam saltos repentinos entre valores.
- Durante os dois segundos finais, ele usa uma instância da classe SplinePointKeyFrame para mover a elipse de volta para sua posição inicial. Quadros de chave spline como SplinePointKeyFrame criam uma transição variável entre valores de acordo com os valores da propriedade KeySpline . Neste exemplo, a animação começa lentamente e acelera exponencialmente na direção do final do segmento de tempo.
<Canvas Width="400" Height="300">
<Canvas.Resources>
<Storyboard x:Name="myStoryboard">
<!-- Animating the Center property uses 3 KeyFrames, which animate
the ellipse allong a triangular path. -->
<PointAnimationUsingKeyFrames
Storyboard.TargetProperty="Center"
Storyboard.TargetName="MyAnimatedEllipseGeometry"
Duration="0:0:5" RepeatBehavior="Forever" EnableDependentAnimation="True">
<!-- Over the first half second, Using a LinearPointKeyFrame, the ellipse
moves steadily from its starting position along the first line of the
trianglar path. -->
<LinearPointKeyFrame KeyTime="0:0:0.5" Value="100,300" />
<!-- Using a DiscretePointKeyFrame, the ellipse suddenly changes position
after the first second of the animation. -->
<DiscretePointKeyFrame KeyTime="0:0:1" Value="400,300" />
<!-- Using a SplinePointKeyFrame, the ellipse moves back to its starting
position. It moves slowly at first and then speeds up. This key frame
takes 2 seconds to complete. -->
<SplinePointKeyFrame KeySpline="0.6,0.0 0.9,0.00"
KeyTime="0:0:3" Value="200,100" />
</PointAnimationUsingKeyFrames>
</Storyboard>
</Canvas.Resources>
<Path Fill="Blue" Loaded="Start_Animation">
<Path.Data>
<!-- Describes an ellipse. -->
<EllipseGeometry x:Name="MyAnimatedEllipseGeometry"
Center="200,100" RadiusX="15" RadiusY="15" />
</Path.Data>
</Path>
</Canvas>
// Start the animation when the object loads
private void Start_Animation(object sender, RoutedEventArgs e)
{
myStoryboard.Begin();
}
Comentários
As animações de quadro chave permitem mais de um valor de destino, que é atingido em um ponto ao longo da linha do tempo da animação. Em outras palavras, cada quadro chave pode especificar um valor intermediário diferente e o último quadro chave atingido é o valor de animação final. Especificando vários valores a serem animados, você pode criar animações mais complexas. Você pode misturar keyframes discretos, lineares e spline na mesma coleção de quadros de chaves.
Para obter mais informações sobre como usar animações de quadro-chave, consulte Animações de quadro-chave e animações de função easing.
Construtores
DiscretePointKeyFrame() |
Inicializa uma nova instância da classe DiscretePointKeyFrame . |
Propriedades
Dispatcher |
Sempre retorna |
DispatcherQueue |
Obtém o ao |
KeyTime |
Obtém ou define a hora em que o Valor de destino do quadro-chave deve ser atingido. (Herdado de PointKeyFrame) |
Value |
Obtém ou define o valor de destino do quadro chave. (Herdado de PointKeyFrame) |
Métodos
ClearValue(DependencyProperty) |
Limpa o valor local de uma propriedade de dependência. (Herdado de DependencyObject) |
GetAnimationBaseValue(DependencyProperty) |
Retorna qualquer valor base estabelecido para uma propriedade de dependência, que se aplicaria nos casos em que uma animação não está ativa. (Herdado de DependencyObject) |
GetValue(DependencyProperty) |
Retorna o valor efetivo atual de uma propriedade de dependência de um DependencyObject. (Herdado de DependencyObject) |
ReadLocalValue(DependencyProperty) |
Retorna o valor local de uma propriedade de dependência, se um valor local for definido. (Herdado de DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Registra uma função de notificação para escutar alterações em uma DependencyProperty específica nesta instância dependencyObject . (Herdado de DependencyObject) |
SetValue(DependencyProperty, Object) |
Define o valor local de uma propriedade de dependência em um DependencyObject. (Herdado de DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Cancela uma notificação de alteração que foi registrada anteriormente chamando RegisterPropertyChangedCallback. (Herdado de DependencyObject) |