LinearDoubleKeyFrame 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.
Animiert den Double-Wert des vorherigen Schlüsselrahmens mithilfe einer linearen Interpolation zu seinem eigenen Wert .
public ref class LinearDoubleKeyFrame 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 LinearDoubleKeyFrame 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 LinearDoubleKeyFrame : DoubleKeyFrame
Public NotInheritable Class LinearDoubleKeyFrame
Inherits DoubleKeyFrame
<LinearDoubleKeyFrame .../>
- Vererbung
- Attribute
Beispiele
In diesem XAML-Beispiel wird ein Rechteck über einen Bildschirm verschoben. Im Beispiel wird die LinearDoubleKeyFrame-Klasse verwendet, um die X-Eigenschaft einer TranslateTransform zu animieren, die auf ein Rectangle angewendet wird. In dieser Animation werden drei Keyframes folgendermaßen verwendet:
- In den ersten drei Sekunden wird ein instance der LinearDoubleKeyFrame-Klasse verwendet, um das Rechteck mit konstanter Geschwindigkeit von seiner Startposition zur Position 500 entlang eines Pfads zu verschieben. Lineare Keyframes wie LinearDoubleKeyFrame sorgen für einen reibungslosen linearen Übergang zwischen Werten.
- Am Ende der vierten Sekunde wird ein instance 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 Startposition und wird anschließend plötzlich an der Position 500 angezeigt.
- In den letzten zwei Sekunden wird ein instance der SplineDoubleKeyFrame-Klasse verwendet, um das Rechteck wieder an seine Startposition zu verschieben. Spline-Keyframes wie SplineDoubleKeyFrame erstellen einen Variablenübergang zwischen Werten gemäß dem Wert der KeySpline-Eigenschaft . In diesem Beispiel bewegt sich das Rechteck zunächst langsam und beschleunigt dann exponentiell im letzten Bereich des Zeitabschnitts.
<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
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. In einer DoubleAnimationUsingKeyFrames mit LinearDoubleKeyFrame hätten Sie in der Regel mindestens zwei Keyframes, andernfalls wäre eine DoubleAnimation einfacher gewesen.
Weitere Informationen zur Verwendung von Keyframeanimationen finden Sie unter Keyframeanimationen und Funktionenanimationen zur Beschleunigung.
Konstruktoren
LinearDoubleKeyFrame() |
Initialisiert eine neue instance der LinearDoubleKeyFrame-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 DoubleKeyFrame) |
Value |
Ruft den Zielwert des Keyframes ab oder legt ihn fest. (Geerbt von DoubleKeyFrame) |
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) |