Partager via


RepeatBehavior Structure

Définition

Décrit comment une chronologie répète sa durée simple.

/// [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"/>
Héritage
RepeatBehavior
Attributs

Exemples

Cet exemple montre plusieurs façons différentes de définir le RepeatBehavior d’une animation et comment ces paramètres peuvent affecter votre animation.

<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();
}

Cet exemple montre comment définir repeatBehavior dans le code. Les animations sont les mêmes que dans l’exemple précédent, mais ont l’attribut x:Name défini, et repeatBehavior est défini dans la Start_Animation méthode plutôt qu’en XAML.

<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();
}

Remarques

Il existe trois types de comportements RepeatBehavior :

  • Intervalle de temps : spécifie la durée active d’une chronologie, en répétant éventuellement l’animation si timeline.Duration est plus court. Par exemple, une chronologie avec une valeur Timeline.Duration simple de 1 seconde et une valeur RepeatBehavior.Duration de 2,5 secondes s’exécute pendant 2,5 itérations et 2,5 secondes.
  • Nombre d’itérations : spécifie le nombre de fois que la durée simple d’une chronologie est lue. Le nombre d’itérations par défaut est 1.0, ce qui signifie que la chronologie est active pendant exactement une de ses durées simples. Un nombre de 0,5 spécifie que le chronologie est actif pendant la moitié de sa durée simple, tandis qu’un nombre de 2 spécifie que la chronologie répète sa durée simple deux fois. Pour plus d’informations, consultez Count.
  • Pour toujours : la chronologie se répète indéfiniment.

Un RepeatBehavior ne doit contenir que des valeurs non nulles pour l’une de ses deux propriétés de données possibles Count ou Duration. Si RepeatBehaviorType est Count, le membre Count d’un RepeatBehavior est la valeur appropriée. Si RepeatBehaviorType a la valeur Duration, le membre Duration d’un RepeatBehavior est la valeur appropriée. Si repeatBehaviorType a la valeur Forever, ni Count ni Duration ne sont pertinents ; le comportement de répétition est tel que l’animation ciblée se répète en continu sans limite.

Remarques sur la syntaxe XAML

Vous ne pouvez pas déclarer un RepeatBehavior en tant qu’objet partageable dans un ResourceDictionary.

Projection et membres de RepeatBehavior

Si vous utilisez un langage Microsoft .NET (C# ou Microsoft Visual Basic), RepeatBehavior a des membres non-données disponibles, et ses membres de données Count, Duration et Type sont exposés en tant que propriétés en lecture-écriture, et non en tant que champs.

Si vous utilisez des extensions de composant Visual C++ (C++/CX), RepeatBehavior a des membres non-données disponibles, et ses membres de données Count, Duration et Type sont exposés en tant que propriétés en lecture seule, et non en tant que champs.

Si vous programmez en C++ à l’aide de la bibliothèque de modèles Windows Runtime (WRL), seuls les champs de membre de données Count, Duration et Type existent en tant que membres de RepeatBehavior, et vous ne pouvez pas utiliser les méthodes ou propriétés utilitaires répertoriées dans la table members. Le code WRL peut accéder à des méthodes utilitaires similaires qui existent sur la classe RepeatBehaviorHelper .

Champs

Count

Nombre de répétitions d’une chronologie .

Duration

Intervalle de temps pendant lequel une chronologie doit se répéter.

Type

Mode ou type de comportement de répétition que cette instance représente, en tant que valeur de l’énumération.

S’applique à