RepeatBehavior Struktur
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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. |