Bagikan melalui


RepeatBehavior Struktur

Definisi

Menjelaskan bagaimana Garis Waktu mengulangi durasi sederhananya.

/// [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"/>
Warisan
RepeatBehavior
Atribut

Persyaratan Windows

Rangkaian perangkat
Windows 10 (diperkenalkan dalam 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v1.0)

Contoh

Contoh ini memperlihatkan beberapa cara berbeda untuk mengatur RepeatBehavior animasi dan bagaimana pengaturan ini dapat memengaruhi animasi Anda.

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

Contoh ini menunjukkan bagaimana Anda dapat mengatur RepeatBehavior dalam kode. Animasi sama seperti pada contoh sebelumnya, tetapi memiliki set atribut x:Name , dan RepeatBehavior diatur dalam Start_Animation metode daripada di 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();
}

Keterangan

Ada tiga jenis perilaku RepeatBehavior:

  • Rentang waktu: menentukan durasi aktif Garis Waktu, mungkin mengulangi animasi jika Timeline.Duration lebih pendek. Misalnya, Garis Waktu dengan nilai Timeline.Duration sederhana 1 detik dan nilai RepeatBehavior.Duration 2,5 detik akan berjalan selama 2,5 iterasi, dan 2,5 detik.
  • Jumlah perulangan: menentukan berapa kali durasi sederhana Garis Waktu diputar. Jumlah perulangan default adalah 1,0, dan ini berarti Garis Waktu aktif tepat untuk salah satu durasi sederhananya. Hitungan 0,5 menentukan bahwa garis waktu aktif selama setengah dari durasi sederhananya, sementara hitungan 2 menentukan bahwa garis waktu mengulangi durasi sederhananya dua kali. Untuk informasi selengkapnya, lihat Hitungan.
  • Selamanya: Garis Waktu berulang tanpa batas waktu.

RepeatBehavior hanya boleh berisi nilai bukan nol untuk salah satu dari dua properti data yang mungkin Dihitung atau Durasi. Jika RepeatBehaviorType adalah Count, maka anggota Count dari RepeatBehavior adalah nilai yang relevan. Jika RepeatBehaviorType adalah Durasi, maka anggota Durasi RepeatBehavior adalah nilai yang relevan. Jika RepeatBehaviorType adalah Forever, maka jumlah maupun Durasi tidak relevan; perilaku pengulangan sedih sehingga animasi yang ditargetkan akan berulang terus menerus tanpa batas.

Catatan tentang sintaks XAML

Anda tidak dapat mendeklarasikan RepeatBehavior sebagai objek yang dapat dibagikan dalam ResourceDictionary.

Proyeksi dan anggota RepeatBehavior

Jika Anda menggunakan bahasa Microsoft .NET (C# atau Microsoft Visual Basic), maka RepeatBehavior memiliki anggota non-data yang tersedia, dan anggota datanya Menghitung, Durasi , dan Jenis diekspos sebagai properti baca-tulis, bukan bidang.

Jika Anda menggunakan ekstensi komponen Visual C++ (C++/CX), maka RepeatBehavior memiliki anggota non-data yang tersedia, dan anggota datanya Menghitung, Durasi , dan Jenis diekspos sebagai properti baca-saja, bukan bidang.

Jika Anda memprogram dengan C++ menggunakan Pustaka Templat Runtime Windows (WRL), maka hanya bidang anggota data Yang Dihitung, Durasi, dan Jenis ada sebagai anggota RepeatBehavior, dan Anda tidak dapat menggunakan metode utilitas atau properti yang tercantum dalam tabel anggota. Kode WRL dapat mengakses metode utilitas serupa yang ada di kelas RepeatBehaviorHelper .

Bidang

Count

Berapa kali Garis Waktu harus diulang.

Duration

Rentang waktu di mana Garis Waktu harus diulang.

Type

Mode atau jenis perilaku berulang yang diwakili instans ini, sebagai nilai enumerasi.

Berlaku untuk