DiscretePointKeyFrame Klasse
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.
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 />
- Vererbung
- Attribute
Beispiele
In diesem XAML-Beispiel wird eine Ellipse entlang eines dreieckigen Pfads verschoben. Im Beispiel wird die PointAnimationUsingKeyFrames-Klasse verwendet, um die Center-Eigenschaft einer EllipseGeometry zu animieren. In dieser Animation werden drei Keyframes folgendermaßen verwendet:
- In der ersten Hälfte der Sekunde wird ein instance der LinearPointKeyFrame-Klasse verwendet, um die Ellipse mit konstanter Geschwindigkeit von ihrer Startposition aus entlang eines Pfads zu verschieben. Lineare Keyframes wie LinearPointKeyFrame erzeugen eine glatte lineare Interpolation zwischen Werten.
- Am Ende der nächsten halben Sekunde wird eine instance der DiscretePointKeyFrame-Klasse verwendet, um die Ellipse plötzlich entlang des Pfads zur nächsten Position zu verschieben. Diskrete Keyframes wie DiscretePointKeyFrame erzeugen plötzliche Sprünge zwischen Werten.
- In den letzten zwei Sekunden wird ein instance der SplinePointKeyFrame-Klasse verwendet, um die Ellipse zurück an ihre Startposition zu verschieben. Spline-Keyframes wie SplinePointKeyFrame erstellen einen Variablenübergang zwischen Werten gemäß den Werten der KeySpline-Eigenschaft . In diesem Beispiel beginnt die Animation zunächst langsam und beschleunigt dann exponentiell im letzten Bereich des Zeitabschnitts.
<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();
}
Hinweise
Keyframe-Animationen lassen mehr als einen Zielwert zu, der an einem gewissen Punkt auf der Animationszeitachse erreicht wird. Anders ausgedrückt kann jeder Keyframe einen anderen Zwischenwert angeben, und der letzte erreichte Keyframe ist der endgültige Animationswert. Durch Angabe mehrerer Animationswerte können Sie komplexere Animationen erstellen. Sie können diskrete, lineare und Spline-Keyframes in derselben Keyframesammlung kombinieren.
Weitere Informationen zur Verwendung von Keyframeanimationen finden Sie unter Keyframeanimationen und Funktionenanimationen zur Beschleunigung.
Konstruktoren
DiscretePointKeyFrame() |
Initialisiert eine neue instance der DiscretePointKeyFrame-Klasse. |
Eigenschaften
Dispatcher |
Gibt immer in einer Windows App SDK-App zurück |
DispatcherQueue |
Ruft den |
KeyTime |
Ruft den Zeitpunkt ab, zu dem der Zielwert des Keyframes erreicht werden soll, oder legt diese fest. (Geerbt von PointKeyFrame) |
Value |
Ruft den Zielwert des Keyframes ab oder legt ihn fest. (Geerbt von PointKeyFrame) |
Methoden
ClearValue(DependencyProperty) |
Löscht den lokalen Wert einer Abhängigkeitseigenschaft. (Geerbt von DependencyObject) |
GetAnimationBaseValue(DependencyProperty) |
Gibt einen beliebigen Basiswert zurück, der für eine Abhängigkeitseigenschaft festgelegt wurde, was in Fällen gilt, in denen eine Animation nicht aktiv ist. (Geerbt von DependencyObject) |
GetValue(DependencyProperty) |
Gibt den aktuellen effektiven Wert einer Abhängigkeitseigenschaft aus einem DependencyObject zurück. (Geerbt von DependencyObject) |
ReadLocalValue(DependencyProperty) |
Gibt den lokalen Wert einer Abhängigkeitseigenschaft zurück, wenn ein lokaler Wert festgelegt ist. (Geerbt von DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Registriert eine Benachrichtigungsfunktion zum Lauschen auf Änderungen an einer bestimmten DependencyProperty für dieses DependencyObject-instance. (Geerbt von DependencyObject) |
SetValue(DependencyProperty, Object) |
Legt den lokalen Wert einer Abhängigkeitseigenschaft für ein DependencyObject fest. (Geerbt von DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Bricht eine Änderungsbenachrichtigung ab, die zuvor registriert wurde, indem RegisterPropertyChangedCallback aufgerufen wurde. (Geerbt von DependencyObject) |