RepeatBehavior Structure
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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. |