RepeatBehavior Struktur

Definition

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.

Gilt für: