DiscreteDoubleKeyFrame Klasse

Definition

Animiert aus dem Double-Wert des vorherigen Keyframes mit diskreten Werten zu seinem eigenen Wert .

public ref class DiscreteDoubleKeyFrame sealed : DoubleKeyFrame
/// [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 DiscreteDoubleKeyFrame final : DoubleKeyFrame
[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 DiscreteDoubleKeyFrame : DoubleKeyFrame
Public NotInheritable Class DiscreteDoubleKeyFrame
Inherits DoubleKeyFrame
<DiscreteDoubleKeyFrame .../>
Vererbung
Object Platform::Object IInspectable DependencyObject DoubleKeyFrame DiscreteDoubleKeyFrame
Attribute

Beispiele

In diesem XAML-Beispiel wird ein Rechteck über einen Bildschirm verschoben. Im Beispiel wird die DoubleAnimationUsingKeyFrames-Klasse verwendet, um die X-Eigenschaft eines TranslateTransform-Objekts zu animieren, das auf ein Rectangle angewendet wird. Diese Animation verwendet drei Keyframes auf folgende Weise:

  1. In den ersten drei Sekunden wird eine Instanz der LinearDoubleKeyFrame-Klasse verwendet, um das Rechteck entlang eines Pfads mit einer stetigen Rate von der Startposition zur 500-Position zu verschieben. Lineare Keyframes wie LinearDoubleKeyFrame schaffen einen reibungslosen linearen Übergang zwischen Werten.
  2. Am Ende der vierten Sekunde wird eine Instanz der DiscreteDoubleKeyFrame-Klasse verwendet, um das Rechteck plötzlich an die nächste Position zu verschieben. Diskrete Keyframes wie DiscreteDoubleKeyFrame erzeugen plötzliche Sprünge zwischen Werten. In diesem Beispiel befindet sich das Rechteck an der Anfangsposition und wird dann plötzlich an der 500-Position angezeigt.
  3. In den letzten zwei Sekunden wird eine Instanz der SplineDoubleKeyFrame-Klasse verwendet, um das Rechteck wieder an die Startposition zu verschieben. Spline-Keyframes wie SplineDoubleKeyFrame erstellen einen variablen Übergang zwischen Werten gemäß dem Wert der KeySpline-Eigenschaft . In diesem Beispiel beginnt das Rechteck langsam und beschleunigt dann exponentiell zum Ende des Zeitsegments.
<StackPanel>
    <StackPanel.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>
    </StackPanel.Resources>
    <Rectangle Fill="Blue" Width="50" Height="50" Loaded="Start_Animation">
        <Rectangle.RenderTransform>
            <TranslateTransform x:Name="MyAnimatedTranslateTransform" 
             X="0" Y="0" />
        </Rectangle.RenderTransform>
    </Rectangle>
</StackPanel>
// Start the animation when the object loads
private void Start_Animation(object sender, RoutedEventArgs e)
{
    myStoryboard.Begin();
}

Hinweise

Keyframeanimationen ermöglichen mehr als einen Zielwert, der an einem Punkt entlang der Animationszeitachse erreicht wird. Mit anderen Worten, jeder Keyframe kann einen anderen Zwischenwert angeben, und der letzte erreichte Keyframe ist der endgültige Animationswert. Indem Sie mehrere zu animierende Werte angeben, 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 Beschleunigungsfunktionsanimationen.

Konstruktoren

Name Beschreibung
DiscreteDoubleKeyFrame()

Initialisiert eine neue Instanz der DiscreteDoubleKeyFrame-Klasse .

Eigenschaften

Name Beschreibung
Dispatcher

Gibt immer in einer Windows App SDK-App zurück null . Verwenden Sie stattdessen DispatcherQueue .

(Geerbt von DependencyObject)
DispatcherQueue

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

(Geerbt von DependencyObject)
KeyTime

Dient zum Abrufen oder Festlegen der Zeit, zu der der Zielwert des Keyframes erreicht werden soll.

(Geerbt von DoubleKeyFrame)
Value

Dient zum Abrufen oder Festlegen des Zielwerts des Keyframes.

(Geerbt von DoubleKeyFrame)

Methoden

Name Beschreibung
ClearValue(DependencyProperty)

Löscht den lokalen Wert einer Abhängigkeitseigenschaft.

(Geerbt von DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Gibt einen Basiswert zurück, der für eine Abhängigkeitseigenschaft eingerichtet wurde, was in Fällen angewendet wird, 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 wird.

(Geerbt von DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registriert eine Benachrichtigungsfunktion, um Änderungen an einer bestimmten DependencyProperty für diese DependencyObject-Instanz zu überwachen.

(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 durch Aufrufen von RegisterPropertyChangedCallback registriert wurde.

(Geerbt von DependencyObject)

Gilt für:

Weitere Informationen