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 den RepeatBehavior im Code festlegen können. Die Animationen sind identisch mit dem vorherigen Beispiel, weisen jedoch den Attributsatz "x:Name " auf, 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-Verhalten:
- Zeitspanne: Gibt die aktive Dauer einer Zeitachse an, die möglicherweise die Animation wiederholt, wenn die Timeline.Duration 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 Standardmäßige Iterationsanzahl ist 1,0, und dies bedeutet, dass die Zeitachse für genau eine der einfachen Daueren aktiv ist. Eine Anzahl von 0,5 gibt an, dass die Zeitachse für die Hälfte ihrer einfachen Dauer aktiv ist, während eine Anzahl von 2 angibt, dass die Zeitachse ihre einfache Dauer zweimal wiederholt. Weitere Informationen finden Sie unter Count.
- Für immer: Die Zeitachse wiederholt sich unbegrenzt.
Ein RepeatBehavior darf nur Werte ohne Null für eine der beiden möglichen Dateneigenschaften Count oder Duration enthalten. Wenn "RepeatBehaviorType" "Count" lautet, ist das Count-Element eines RepeatBehavior-Elements der relevante Wert. Wenn " RepeatBehaviorType" " Duration" lautet, ist das "Duration "-Element eines RepeatBehavior-Elements der relevante Wert. Wenn "RepeatBehaviorType" für immer ist, sind weder Anzahl noch Dauer relevant; Das Wiederholungsverhalten ist so, dass die zielorientierte Animation ohne Einschränkung kontinuierlich wiederholt wird.
Hinweise zur XAML-Syntax
Sie können einen RepeatBehavior nicht als gemeinsam nutzbares Objekt in einem ResourceDictionary deklarieren.
Projektion und Member von RepeatBehavior
Wenn Sie eine Microsoft .NET Sprache (C#) verwenden, stehen "RepeatBehavior" nicht-Datenmember zur Verfügung, und die zugehörigen Datenmember "Anzahl", "Dauer" und "Typ" werden als Eigenschaften mit Lese-/Schreibzugriff verfügbar gemacht, nicht als Felder.
Wenn Sie C++ verwenden, stehen "RepeatBehavior" nicht-Datenmmber zur Verfügung, und die zugehörigen Datenmmber "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 Anzahl, Dauer und Typ als Member von RepeatBehavior vorhanden, und Sie können die in der Membertabelle aufgeführten Hilfsmethoden oder Eigenschaften nicht verwenden. WRL-Code kann auf ähnliche Hilfsmethoden zugreifen, die in der RepeatBehaviorHelper-Klasse vorhanden sind.
Felder
| Name | Beschreibung |
|---|---|
| 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 der Typ des Wiederholungsverhaltens, das diese Instanz darstellt, als Wert der Enumeration. |