Freigeben über


DiscretePointKeyFrame Klasse

Definition

Animiert vom Punktwert des vorherigen Keyframes mit diskreten Frames zu seinem eigenen Wert .

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
Object Platform::Object IInspectable DependencyObject PointKeyFrame DiscretePointKeyFrame
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:

  1. 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.
  2. 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.
  3. 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ücknull. Verwenden Sie stattdessen DispatcherQueue .

(Geerbt von DependencyObject)
DispatcherQueue

Ruft den DispatcherQueue ab, dem dieses Objekt zugeordnet ist. Stellt DispatcherQueue eine Funktion dar, die auf den DependencyObject im UI-Thread zugreifen kann, auch wenn der Code von einem Nicht-UI-Thread initiiert wird.

(Geerbt von DependencyObject)
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)

Gilt für:

Weitere Informationen