RepeatBehavior Struktur
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.
Beschreibt, wie eine Zeitachse ihre einfache Dauer wiederholt.
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
struct RepeatBehavior
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
public struct RepeatBehavior
Public Structure RepeatBehavior
<object property="iterationsx"/>
- or -
<object property="[days.]hours:minutes:seconds[.fractionalSeconds]"/>
- or -
<object property="Forever"/>
- Vererbung
-
RepeatBehavior
- Attribute
Beispiele
Dieses Beispiel zeigt verschiedene Möglichkeiten zum Festlegen des RepeatBehavior einer Animation und wie sich diese Einstellungen auf Ihre Animation auswirken können.
<StackPanel Margin="20">
<StackPanel.Resources>
<Storyboard x:Name="myStoryboard">
<!-- Create an animation that repeats indefinitely. -->
<DoubleAnimation
Storyboard.TargetName="ForeverRepeatingTransform"
Storyboard.TargetProperty="ScaleX"
From="1" To="5" Duration="0:0:2" RepeatBehavior="Forever" />
<!-- Create an animation that repeats for four seconds. Because
the animation is 2 seconds each, you get two repeats. -->
<DoubleAnimation
Storyboard.TargetName="FourSecondsRepeatingTransform"
Storyboard.TargetProperty="ScaleX"
From="1" To="5" Duration="0:0:2" RepeatBehavior="0:0:4"
EnableDependentAnimation="True"/>
<!-- Create an animation that repeats twice. -->
<DoubleAnimation
Storyboard.TargetName="TwiceRepeatingTransform"
Storyboard.TargetProperty="ScaleX"
From="1" To="5" Duration="0:0:2" RepeatBehavior="2x"
EnableDependentAnimation="True"/>
<!-- Create an animation that repeats 0.5 times. The resulting animation
plays for one second, half of its Duration. It animates from 50 to 150. -->
<DoubleAnimation
Storyboard.TargetName="HalfRepeatingTransform"
Storyboard.TargetProperty="ScaleX"
From="1" To="5" Duration="0:0:2" RepeatBehavior="0.5x"
EnableDependentAnimation="True"/>
<!-- Create an animation that repeats for one second. The resulting animation
plays for one second, half of its Duration. It animates from 50 to 150. -->
<DoubleAnimation
Storyboard.TargetName="OneSecondRepeatingTransform"
Storyboard.TargetProperty="ScaleX"
From="1" To="5" Duration="0:0:2" RepeatBehavior="0:0:1"
EnableDependentAnimation="True"/>
</Storyboard>
</StackPanel.Resources>
<!-- Create several rectangles to animate. -->
<Rectangle Fill="Red" Width="50" Height="20" >
<Rectangle.RenderTransform>
<ScaleTransform x:Name="ForeverRepeatingTransform" />
</Rectangle.RenderTransform>
</Rectangle>
<Rectangle Fill="Blue" Width="50" Height="20" >
<Rectangle.RenderTransform>
<ScaleTransform x:Name="FourSecondsRepeatingTransform" />
</Rectangle.RenderTransform>
</Rectangle>
<Rectangle Fill="Yellow" Width="50" Height="20" >
<Rectangle.RenderTransform>
<ScaleTransform x:Name="TwiceRepeatingTransform" />
</Rectangle.RenderTransform>
</Rectangle>
<Rectangle Fill="Green" Width="50" Height="20" >
<Rectangle.RenderTransform>
<ScaleTransform x:Name="HalfRepeatingTransform" />
</Rectangle.RenderTransform>
</Rectangle>
<Rectangle Fill="Orange" Width="50" Height="20" >
<Rectangle.RenderTransform>
<ScaleTransform x:Name="OneSecondRepeatingTransform" />
</Rectangle.RenderTransform>
</Rectangle>
<!-- Create buttons to restart and stop the animations. -->
<Button Margin="10" Content="Restart Animation" Click="Start_Animation" />
</StackPanel>
private void Start_Animation(object sender, RoutedEventArgs e)
{
myStoryboard.Begin();
}
In diesem Beispiel wird gezeigt, wie Sie repeatBehavior im Code festlegen können. Die Animationen sind mit denen im vorherigen Beispiel identisch, haben jedoch das x:Name-Attribut festgelegt, und der RepeatBehavior wird in der Start_Animation
-Methode und nicht in XAML festgelegt.
<Storyboard x:Name="myStoryboard">
<!-- Create an animation that repeats indefinitely. -->
<DoubleAnimation x:Name="ForeverRepeatingAnimation"
Storyboard.TargetName="ForeverRepeatingTransform"
Storyboard.TargetProperty="ScaleX"
From="1" To="5" Duration="0:0:2" />
<!-- Create an animation that repeats for four seconds. Because
the animation is 2 seconds each, you get two repeats. -->
<DoubleAnimation x:Name="FourSecondsRepeatingAnimation"
Storyboard.TargetName="FourSecondsRepeatingTransform"
Storyboard.TargetProperty="ScaleX"
From="1" To="5" Duration="0:0:2"
EnableDependentAnimation="True"/>
<!-- Create an animation that repeats twice. -->
<DoubleAnimation x:Name="TwiceRepeatingAnimation"
Storyboard.TargetName="TwiceRepeatingTransform"
Storyboard.TargetProperty="ScaleX"
From="1" To="5" Duration="0:0:2"
EnableDependentAnimation="True"/>
</Storyboard>
private void Start_Animation(object sender, RoutedEventArgs e)
{
// Set RepeatBehavior of Forever.
var repeatBehavior = new RepeatBehavior();
repeatBehavior.Type = RepeatBehaviorType.Forever;
ForeverRepeatingAnimation.RepeatBehavior = repeatBehavior;
// Set RepeatBehavior with Duration of 4 seconds.
FourSecondsRepeatingAnimation.RepeatBehavior = new RepeatBehavior(new TimeSpan(0, 0, 4));
// Set RepeatBehavior with Count of 2.
TwiceRepeatingAnimation.RepeatBehavior = new RepeatBehavior(2);
myStoryboard.Begin();
}
Hinweise
Es gibt drei Arten von RepeatBehavior-Verhaltensweisen:
- Zeitspanne: Gibt die aktive Dauer einer Zeitachse an, wobei die Animation möglicherweise wiederholt wird, wenn die Zeitachse.Dauer kürzer ist. Beispielsweise wird eine Zeitachse mit einem einfachen Timeline.Duration-Wert von 1 Sekunde und einem RepeatBehavior.Duration-Wert von 2,5 Sekunden für 2,5 Iterationen und 2,5 Sekunden ausgeführt.
- Iterationsanzahl: Gibt an, wie oft die einfache Dauer einer Zeitachse wiedergegeben wird. Die Standarditerationsanzahl ist 1.0. Dies bedeutet, dass die Zeitachse genau eine ihrer einfachen Daueren aktiv ist. Eine Anzahl von 0,5 gibt an, dass der Zeitleiste für die Hälfte seiner einfachen Dauer aktiv ist, während eine Anzahl von 2 angibt, dass der Zeitleiste seine einfache Dauer zweimal wiederholt. Weitere Informationen finden Sie unter Anzahl.
- Für immer: Die Zeitachse wiederholt sich auf unbestimmte Zeit.
Ein RepeatBehavior sollte nur Werte ungleich null für eine der beiden möglichen Dateneigenschaften Count oder Duration enthalten. Wenn RepeatBehaviorTypeCount ist, ist das Count-Element eines RepeatBehavior-Elements der relevante Wert. Wenn RepeatBehaviorTypeDuration ist, ist der Duration-Member eines RepeatBehavior-Elements der relevante Wert. Wenn repeatBehaviorTypeforever ist, sind weder Count noch Duration relevant. das Wiederholungsverhalten ist so, dass die Zielanimation kontinuierlich ohne Begrenzung wiederholt wird.
Hinweise zur XAML-Syntax
Sie können ein RepeatBehavior nicht als freigegebenes Objekt in einem ResourceDictionary deklarieren.
Projektion und Elemente von RepeatBehavior
Wenn Sie eine Microsoft .NET-Sprache (C# oder Microsoft Visual Basic) verwenden, stehen für RepeatBehavior Nicht-Datenelemente zur Verfügung, und die Datenelemente Anzahl, Dauer und Typ werden als Eigenschaften mit Lese-/Schreibzugriff und nicht als Felder verfügbar gemacht.
Wenn Sie Visual C++-Komponentenerweiterungen (C++/CX) verwenden, stehen für RepeatBehavior Nicht-Datenelemente zur Verfügung, und die Datenelemente Count, Duration und Type werden als schreibgeschützte Eigenschaften und nicht als Felder verfügbar gemacht.
Wenn Sie mit C++ mit der Windows-Runtime Template Library (WRL) programmieren, sind nur die Datenmemberfelder Count, Duration und Type als Member von RepeatBehavior vorhanden, und Sie können die in der Membertabelle aufgeführten Hilfsprogrammmethoden oder -eigenschaften nicht verwenden. WRL-Code kann auf ähnliche Hilfsprogrammmethoden zugreifen, die für die RepeatBehaviorHelper-Klasse vorhanden sind.
Felder
Count |
Die Häufigkeit, mit der eine Zeitachse wiederholt werden soll. |
Duration |
Die Zeitspanne, für die eine Zeitachse wiederholt werden soll. |
Type |
Der Modus oder typ des Wiederholungsverhaltens, das dieser instance als Wert der Enumeration darstellt. |