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 Keyframes mithilfe der 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 Rechteck angewendet wird. Diese Animation verwendet drei Keyframes auf folgende Weise:
- 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.
- 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.
- 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. Normalerweise hätten Sie mindestens zwei Keyframes in einem DoubleAnimationUsingKeyFrames mit LinearDoubleKeyFrame, andernfalls wäre eine DoubleAnimation einfacher gewesen.
Weitere Informationen zur Verwendung von Keyframeanimationen finden Sie unter Keyframeanimationen und Beschleunigungsfunktionsanimationen.
Konstruktoren
| Name | Beschreibung |
|---|---|
| LinearDoubleKeyFrame() |
Initialisiert eine neue Instanz der LinearDoubleKeyFrame-Klasse . |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Dispatcher |
Gibt immer in einer Windows App SDK-App zurück |
| DispatcherQueue |
Ruft ab |
| 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) |