DoubleAnimation 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 DoubleAnimation sealed : Timeline
/// [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 DoubleAnimation final : Timeline
[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 DoubleAnimation : Timeline
Public NotInheritable Class DoubleAnimation
Inherits Timeline
<DoubleAnimation />
- Vererbung
- Attribute
Beispiele
Das folgende Beispiel zeigt, wie Sie DoubleAnimation verwenden, um ein Rechteck zu erstellen, das nach dem Laden ein- und ausgeblendet wird.
<StackPanel>
<StackPanel.Resources>
<Storyboard x:Name="myStoryboard">
<DoubleAnimation
Storyboard.TargetName="MyAnimatedRectangle"
Storyboard.TargetProperty="Opacity"
From="1.0" To="0.0" Duration="0:0:3"
AutoReverse="True" RepeatBehavior="Forever" />
</Storyboard>
</StackPanel.Resources>
<Rectangle Loaded="Start_Animation" x:Name="MyAnimatedRectangle"
Width="100" Height="100" Fill="Blue" />
</StackPanel>
// Start the animation when the object loads
private void Start_Animation(object sender, RoutedEventArgs e)
{
myStoryboard.Begin();
}
<Canvas>
<Canvas.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>
</Canvas.Resources>
<Rectangle PointerPressed="Pointer_Clicked" Fill="Blue"
Width="50" Height="50">
<Rectangle.RenderTransform>
<TranslateTransform x:Name="MyAnimatedTranslateTransform" />
</Rectangle.RenderTransform>
</Rectangle>
</Canvas>
// Start the animation when the object loads
private void Start_Animation(object sender, RoutedEventArgs e)
{
myStoryboard.Begin();
}
Hinweise
Verwenden Sie DoubleAnimation, um den Eigenschaftswert jeder Abhängigkeitseigenschaft zu animieren, die vom Typ Double ist.
Manchmal müssen Sie die indirekte Eigenschaftsadressierung verwenden, um eine Untereigenschaft eines anderen Objekts als Ziel zu verwenden, das den Wert einer Eigenschaft für das Ziel darstellt. Um beispielsweise die X-Komponente einer RenderTransform eines UIElements zu animieren, müssen Sie auf einige der Zwischenwerte der Objekteigenschaft verweisen, bis der letzte Schritt im indirekten Eigenschaftspfad wirklich ein Double-Wert ist, wie bei TranslateTransform.X. Die richtige Zeichenfolge, die für Storyboard.TargetProperty in diesem Beispiel verwendet werden soll, ist "(UIElement.RenderTransform). (TranslateTransform.X)". Weitere Informationen zu indirekten Eigenschaftenadressierung und anderen Storyboardanimationen finden Sie unter Storyboardanimationen.
Eine DoubleAnimation verfügt in der Regel über mindestens einen der Eigenschaften From, By oder To , aber nie alle drei.
- Nur von: Die Animation wird von dem von der From-Eigenschaft angegebenen Wert zum Basiswert der animierten Eigenschaft ausgeführt.
- Von und nach: Die Animation wird vom wert, der von der From-Eigenschaft angegeben wird, zum wert, der von der To-Eigenschaft angegeben wird.
- Von und nach: Die Animation wird von dem von der From-Eigenschaft angegebenen Wert zum durch die Summe der From - und By-Eigenschaften angegebenen Wert fort.
- Nur für: Die Animation wird vom Basiswert der animierten Eigenschaft oder dem Ausgabewert einer vorherigen Animation zum durch die To-Eigenschaft angegebenen Wert ausgeführt.
- Nur nach: Die Animation wird vom Basiswert der animierten Eigenschaft oder dem Ausgabewert einer vorherigen Animation zur Summe dieses Werts und des durch die By-Eigenschaft angegebenen Werts ausgeführt.
Sie können die X- und Y-Werte eines Punkts nicht mithilfe einer DoubleAnimation animieren, da diese Eigenschaften keine Abhängigkeitseigenschaften sind (Point ist eine Struktur und kann keine Abhängigkeitseigenschaften aufweisen.) Verwenden Sie stattdessen PointAnimation , um Abhängigkeitseigenschaften mit einem Punktwert zu animieren.
Sie können doubleAnimation auch nicht verwenden, um Int-Werte oder Bytewerte zu animieren. Stattdessen müssen Sie ObjectAnimationUsingKeyFrames verwenden, was Ihnen kein Interpolationsverhalten gibt. Daher müssen Sie möglicherweise mehrere Keyframes definieren, um eine relativ reibungslose Animation zu erhalten. Es gibt nicht viele UI-bezogene Abhängigkeitseigenschaften, die Int-Werte oder Bytewerte verwenden, daher sollte dies kein gängiges Szenario sein, das nicht für benutzerdefinierte Eigenschaften gilt.
Die Eigenschaften From, By oder To einer DoubleAnimation sind kein Double. Stattdessen ist dies eine Nullwerte für Double. Der Standardwert für diese Werte ist NULL, nicht 0. Dieser Nullwert ist, wie das Animationssystem unterscheidet, dass Sie keinen speziellen Wert festgelegt haben. C++ verfügt nicht über einen nullfähigen Typ, daher wird stattdessen IReference verwendet.
Konstruktoren
| Name | Beschreibung |
|---|---|
| DoubleAnimation() |
Initialisiert eine neue Instanz der DoubleAnimation-Klasse . |
Eigenschaften
| Name | Beschreibung |
|---|---|
| AutoReverse |
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die Zeitachse rückwärts wiedergegeben wird, nachdem sie eine Vorwärts iteration abgeschlossen hat. (Geerbt von Timeline) |
| BeginTime |
Ruft die Uhrzeit ab, zu der diese Zeitachse beginnen soll, oder legt sie fest. (Geerbt von Timeline) |
| By |
Ruft den Gesamtbetrag ab, um den die Animation ihren Anfangswert ändert, oder legt diese fest. |
| ByProperty |
Identifies the By dependency property. |
| Dispatcher |
Gibt immer in einer Windows App SDK-App zurück |
| DispatcherQueue |
Ruft ab |
| Duration |
Dient zum Abrufen oder Festlegen der Zeitdauer, für die diese Zeitachse wiedergegeben wird, ohne Wiederholungen zu zählen. (Geerbt von Timeline) |
| EasingFunction |
Ruft die Beschleunigungsfunktion ab, die auf diese Animation angewendet wird, oder legt sie fest. |
| EasingFunctionProperty |
Identifies the EasingFunction dependency property. |
| EnableDependentAnimation |
Dient zum Abrufen oder Festlegen eines Werts, der deklariert, ob animierte Eigenschaften, die als abhängige Animationen betrachtet werden, diese Animationsdeklaration verwenden dürfen. |
| EnableDependentAnimationProperty |
Identifies the EnableDependentAnimation dependency property. |
| FillBehavior |
Dient zum Abrufen oder Festlegen eines Werts, der angibt, wie sich die Animation verhält, nachdem sie das Ende des aktiven Zeitraums erreicht hat. (Geerbt von Timeline) |
| From |
Dient zum Abrufen oder Festlegen des Startwerts der Animation. |
| FromProperty |
Identifies the From dependency property. |
| RepeatBehavior |
Ruft das wiederholte Verhalten dieser Zeitachse ab oder legt dieses fest. (Geerbt von Timeline) |
| SpeedRatio |
Dient zum Abrufen oder Festlegen der Rate relativ zum übergeordneten Element, zu dem der Zeitpunkt für diese Zeitachse voranschreitet. (Geerbt von Timeline) |
| To |
Dient zum Abrufen oder Festlegen des Endwerts der Animation. |
| ToProperty |
Identifies the To dependency property. |
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) |
Ereignisse
| Name | Beschreibung |
|---|---|
| Completed |
Tritt auf, wenn die Wiedergabe des Storyboard-Objekts abgeschlossen wurde. (Geerbt von Timeline) |