Partager via


RepeatBehavior Structure

Définition

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

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

Configuration requise pour Windows

Famille d’appareils
Windows 10 (introduit dans 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v1.0)

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 le RepeatBehavior est défini dans la Start_Animation méthode plutôt que dans 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 la chronologie.Duration est plus courte. 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 où 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 le 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 doit uniquement contenir 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 est Duration, le membre Duration d’un RepeatBehavior est la valeur appropriée. Si le RepeatBehaviorType est Forever, le nombre et la durée ne sont pas pertinents ; le comportement de répétition est tel que l’animation ciblée se répète continuellement 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 dispose de membres autres que les données, 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-data disponibles, et ses membres de données Count, Duration et Type sont exposés en tant que propriétés en lecture seule, pas en tant que champs.

Si vous programmez avec 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 d’utilitaire répertoriées dans la table members. Le code WRL peut accéder à des méthodes d’utilitaire similaires qui existent sur la classe RepeatBehaviorHelper .

Champs

Count

Nombre de fois qu’une chronologie doit se répéter.

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 à