Condividi tramite


RepeatBehavior Struct

Definizione

Descrive in che modo una sequenza temporale ripete la sua durata semplice.

/// [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"/>
Ereditarietà
RepeatBehavior
Attributi

Requisiti Windows

Famiglia di dispositivi
Windows 10 (è stato introdotto in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)

Esempio

In questo esempio vengono illustrati diversi modi per impostare RepeatBehavior di un'animazione e come queste impostazioni possono influire sull'animazione.

<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 questo esempio viene illustrato come impostare RepeatBehavior nel codice. Le animazioni sono uguali all'esempio precedente, ma hanno il set di attributi x:Name e il repeatBehavior è impostato nel metodo anziché in Start_Animation 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();
}

Commenti

Esistono tre tipi di comportamenti RepeatBehavior:

  • Intervallo di tempo: specifica la durata attiva di una sequenza temporale, eventualmente ripetendo l'animazione se la sequenza temporale.Duration è più breve. Ad esempio, una sequenza temporale con un valore timeline.Duration semplice pari a 1 secondo e un valore RepeatBehavior.Duration pari a 2,5 secondi verrà eseguito per 2,5 iterazioni e 2,5 secondi.
  • Numero di iterazioni: specifica il numero di volte in cui la durata semplice di una sequenza temporale viene riprodotta. Il numero di iterazioni predefinito è 1,0 e questo significa che la sequenza temporale è attiva per una delle sue semplici durate. Un conteggio di 0,5 specifica che la sequenza temporale è attiva per metà della durata semplice, mentre un conteggio di 2 specifica che la sequenza temporale ripete la durata semplice due volte. Per altre informazioni, vedere Conteggio.
  • Per sempre: la sequenza temporale si ripete in modo indefinito.

Un RepeatBehavior deve contenere solo valori non zero per uno dei due possibili proprietà dati Count o Duration. Se repeatBehaviorType è Count, il membro Count di un RepeatBehavior è il valore pertinente. Se repeatBehaviorType è Duration, il membro Duration di un RepeatBehavior è il valore pertinente. Se repeatBehaviorType è per sempre, non è rilevante il conteggiola durata ; il comportamento di ripetizione è tale che l'animazione di destinazione si ripeterà continuamente senza un limite.

Note sulla sintassi XAML

Non è possibile dichiarare un RepeatBehavior come oggetto condivisibile in un resourceDictionary.

Proiezione e membri di RepeatBehavior

Se si usa un linguaggio Microsoft .NET (C# o Microsoft Visual Basic), RepeatBehavior dispone di membri non dati disponibili e i relativi membri dati Conteggio, Durata e Tipo vengono esposti come proprietà di lettura-scrittura, non campi.

Se si usano estensioni del componente Visual C++ (C++/CX), RepeatBehavior dispone di membri non dati disponibili e i relativi membri dati Count, Duration e Type vengono esposti come proprietà di sola lettura, non campi.

Se si esegue la programmazione con C++ usando la libreria di modelli di Windows Runtime, solo i campi membro dati Count, Duration e Type esistono come membri di RepeatBehavior e non è possibile usare i metodi di utilità o le proprietà elencati nella tabella dei membri. Il codice WRL può accedere a metodi di utilità simili presenti nella classe RepeatBehaviorHelper .

Campi

Count

Numero di volte in cui deve ripetersi una sequenza temporale .

Duration

Intervallo di tempo per il quale deve ripetere una sequenza temporale .

Type

Modalità o tipo di comportamento ripetuto rappresentato da questa istanza come valore dell'enumerazione.

Si applica a