Freigeben über


RepeatBehavior Struktur

Definition

Beschreibt, wie eine Zeitachse ihre einfache Dauer wiederholt.

/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
struct RepeatBehavior
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 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

Windows-Anforderungen

Gerätefamilie
Windows 10 (eingeführt in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)

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.

Gilt für: