FrameworkElement.BeginStoryboard Metode
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.
Memulai urutan tindakan yang terkandung dalam papan cerita yang disediakan.
Overload
BeginStoryboard(Storyboard) |
Memulai urutan tindakan yang terkandung dalam papan cerita yang disediakan. |
BeginStoryboard(Storyboard, HandoffBehavior) |
Memulai urutan tindakan yang terkandung dalam papan cerita yang disediakan, dengan opsi yang ditentukan untuk apa yang harus terjadi jika properti sudah dianimasikan. |
BeginStoryboard(Storyboard, HandoffBehavior, Boolean) |
Memulai urutan tindakan yang terkandung dalam papan cerita yang disediakan, dengan status yang ditentukan untuk kontrol animasi setelah dimulai. |
BeginStoryboard(Storyboard)
Memulai urutan tindakan yang terkandung dalam papan cerita yang disediakan.
public:
void BeginStoryboard(System::Windows::Media::Animation::Storyboard ^ storyboard);
public void BeginStoryboard (System.Windows.Media.Animation.Storyboard storyboard);
member this.BeginStoryboard : System.Windows.Media.Animation.Storyboard -> unit
Public Sub BeginStoryboard (storyboard As Storyboard)
Parameter
- storyboard
- Storyboard
Papan cerita yang akan dimulai.
Contoh
Contoh berikut mengambil Storyboard dari sumber daya, lalu menjalankan yang Storyboard saat peristiwa internal ditangani kelas.
private void OnImage1Animate(object sender, RoutedEventArgs e)
{
Storyboard s;
s = (Storyboard)this.FindResource("RotateStoryboard");
this.BeginStoryboard(s);
}
Private Sub OnImage1Animate(ByVal sender As Object, ByVal e As RoutedEventArgs)
Dim s As Storyboard
s = CType(Me.FindResource("RotateStoryboard"), Storyboard)
Me.BeginStoryboard(s)
End Sub
Keterangan
Sebagian besar skenario animasi umum tidak menggunakan metode ini. Biasanya, Anda membuat elemen Storyboard atau BeginStoryboard dalam markup, lalu Anda menempatkannya sebagai konten EventTrigger pada elemen. Saat dipicu oleh peristiwa, animasi kemudian berjalan. Sebagian besar aspek kontrol Storyboard dapat diatasi oleh properti yang diekspos dalam markup.
Untuk tanda tangan yang tidak menggunakan isControllable
, parameter, atau ketika parameter tersebut ditentukan false
, jam garis waktu yang terkait dengan animasi dihapus segera setelah animasi mencapai periode "Isi". Oleh karena itu animasi tidak dapat dimulai ulang setelah berjalan sekali. Mengontrol animasi juga mengharuskan papan cerita memiliki x:Name Directive atau dapat diakses dengan referensi dalam kode.
Berlaku untuk
BeginStoryboard(Storyboard, HandoffBehavior)
Memulai urutan tindakan yang terkandung dalam papan cerita yang disediakan, dengan opsi yang ditentukan untuk apa yang harus terjadi jika properti sudah dianimasikan.
public:
void BeginStoryboard(System::Windows::Media::Animation::Storyboard ^ storyboard, System::Windows::Media::Animation::HandoffBehavior handoffBehavior);
public void BeginStoryboard (System.Windows.Media.Animation.Storyboard storyboard, System.Windows.Media.Animation.HandoffBehavior handoffBehavior);
member this.BeginStoryboard : System.Windows.Media.Animation.Storyboard * System.Windows.Media.Animation.HandoffBehavior -> unit
Public Sub BeginStoryboard (storyboard As Storyboard, handoffBehavior As HandoffBehavior)
Parameter
- storyboard
- Storyboard
Papan cerita yang akan dimulai.
- handoffBehavior
- HandoffBehavior
Nilai enumerasi yang menjelaskan perilaku yang akan digunakan jika properti yang dijelaskan di papan cerita sudah dianimasikan.
Contoh
Contoh berikut mengambil Storyboard dari sumber daya, lalu menjalankan yang Storyboard saat peristiwa internal ditangani kelas.
private void OnImage1Animate(object sender, RoutedEventArgs e)
{
Storyboard s;
s = (Storyboard)this.FindResource("RotateStoryboard");
this.BeginStoryboard(s);
}
Private Sub OnImage1Animate(ByVal sender As Object, ByVal e As RoutedEventArgs)
Dim s As Storyboard
s = CType(Me.FindResource("RotateStoryboard"), Storyboard)
Me.BeginStoryboard(s)
End Sub
Keterangan
Sebagian besar skenario animasi umum tidak menggunakan metode ini. Biasanya, Anda membuat elemen Storyboard atau BeginStoryboard dalam markup, lalu Anda menempatkannya sebagai konten EventTrigger pada elemen. Saat dipicu oleh peristiwa, animasi kemudian berjalan. Sebagian besar aspek kontrol Storyboard dapat diatasi oleh properti yang diekspos dalam markup.
Untuk tanda tangan yang tidak menggunakan isControllable
, parameter, atau ketika parameter tersebut ditentukan false
, jam garis waktu yang terkait dengan animasi dihapus segera setelah animasi mencapai periode "Isi". Oleh karena itu animasi tidak dapat dimulai ulang setelah berjalan sekali. Mengontrol animasi juga mengharuskan papan cerita memiliki x:Name Directive atau dapat diakses dengan referensi dalam kode.
Perilaku handoff dapat ditentukan sebagai atribut BeginStoryboard.
Menggunakan Compose HandoffBehavior
Saat Anda menerapkan Storyboard, AnimationTimeline, atau AnimationClock ke properti dengan menggunakan ComposeHandoffBehavior, objek Clock apa pun yang sebelumnya terkait dengan properti tersebut terus menggunakan sumber daya sistem; sistem waktu tidak menghapus jam secara otomatis.
Untuk menghindari masalah performa saat Anda menerapkan sejumlah besar jam dengan menggunakan Compose, Anda harus menghapus jam pembuatan dari properti animasi setelah selesai. Ada beberapa cara untuk menghapus jam:
Untuk menghapus semua jam dari properti, gunakan metode ApplyAnimationClock(DependencyProperty, AnimationClock) atau BeginAnimation(DependencyProperty, AnimationTimeline) objek animasi. Tentukan properti yang dianimasikan sebagai parameter pertama, dan
null
sebagai yang kedua. Ini menghapus semua jam animasi dari properti.Untuk menghapus AnimationClock tertentu dari daftar jam, gunakan properti ControllerAnimationClock untuk mengambil ClockController, lalu panggil metode RemoveClockController. Ini biasanya dilakukan di penanganan aktivitas Completed selama satu jam. Perhatikan bahwa hanya jam akar yang dapat dikontrol oleh ClockController; properti Controller jam anak mengembalikan
null
. Perhatikan juga bahwa peristiwa Completed tidak dinaikkan jika durasi jam yang efektif selamanya. Dalam hal ini, pengguna harus menentukan kapan harus memanggil Remove.
Ini terutama masalah untuk animasi pada objek yang memiliki masa pakai yang lama. Ketika objek dikumpulkan sampah, jamnya juga terputus dan sampah dikumpulkan.
Untuk informasi selengkapnya tentang objek jam, lihat Gambaran Umum Animasi dan Sistem Pengaturan Waktu .
Berlaku untuk
BeginStoryboard(Storyboard, HandoffBehavior, Boolean)
Memulai urutan tindakan yang terkandung dalam papan cerita yang disediakan, dengan status yang ditentukan untuk kontrol animasi setelah dimulai.
public:
void BeginStoryboard(System::Windows::Media::Animation::Storyboard ^ storyboard, System::Windows::Media::Animation::HandoffBehavior handoffBehavior, bool isControllable);
public void BeginStoryboard (System.Windows.Media.Animation.Storyboard storyboard, System.Windows.Media.Animation.HandoffBehavior handoffBehavior, bool isControllable);
member this.BeginStoryboard : System.Windows.Media.Animation.Storyboard * System.Windows.Media.Animation.HandoffBehavior * bool -> unit
Public Sub BeginStoryboard (storyboard As Storyboard, handoffBehavior As HandoffBehavior, isControllable As Boolean)
Parameter
- storyboard
- Storyboard
Papan cerita yang akan dimulai.
- handoffBehavior
- HandoffBehavior
Nilai enumerasi yang menjelaskan perilaku yang akan digunakan jika properti yang dijelaskan di papan cerita sudah dianimasikan.
- isControllable
- Boolean
Menyatakan apakah animasi dapat dikontrol (dapat dijeda) setelah dimulai.
Keterangan
Sebagian besar skenario animasi umum tidak menggunakan metode ini. Biasanya, Anda membuat elemen Storyboard atau BeginStoryboard dalam markup, lalu Anda menempatkannya sebagai konten EventTrigger pada elemen. Saat dipicu oleh peristiwa, animasi kemudian berjalan. Sebagian besar aspek kontrol Storyboard dapat diatasi oleh properti yang diekspos dalam markup.
Untuk tanda tangan yang tidak menggunakan isControllable
, parameter, atau ketika parameter tersebut ditentukan false
, jam garis waktu yang terkait dengan animasi dihapus segera setelah animasi mencapai periode "Isi". Oleh karena itu animasi tidak dapat dimulai ulang setelah berjalan sekali. Mengontrol animasi juga mengharuskan papan cerita memiliki x:Name Directive atau dapat diakses dengan referensi dalam kode.
Perilaku handoff dapat ditentukan sebagai atribut BeginStoryboard.
Menggunakan Compose HandoffBehavior
Saat Anda menerapkan Storyboard, AnimationTimeline, atau AnimationClock ke properti dengan menggunakan ComposeHandoffBehavior, objek Clock apa pun yang sebelumnya terkait dengan properti tersebut terus menggunakan sumber daya sistem; sistem waktu tidak menghapus jam secara otomatis.
Untuk menghindari masalah performa saat Anda menerapkan sejumlah besar jam dengan menggunakan Compose, Anda harus menghapus jam pembuatan dari properti animasi setelah selesai. Ada beberapa cara untuk menghapus jam:
Untuk menghapus semua jam dari properti, gunakan metode ApplyAnimationClock(DependencyProperty, AnimationClock) atau BeginAnimation(DependencyProperty, AnimationTimeline) objek animasi. Tentukan properti yang dianimasikan sebagai parameter pertama, dan
null
sebagai yang kedua. Ini menghapus semua jam animasi dari properti.Untuk menghapus AnimationClock tertentu dari daftar jam, gunakan properti ControllerAnimationClock untuk mengambil ClockController, lalu panggil metode RemoveClockController. Ini biasanya dilakukan di penanganan aktivitas Completed selama satu jam. Perhatikan bahwa hanya jam akar yang dapat dikontrol oleh ClockController; properti Controller jam anak mengembalikan
null
. Perhatikan juga bahwa peristiwa Completed tidak dinaikkan jika durasi jam yang efektif selamanya. Dalam hal ini, pengguna harus menentukan kapan harus memanggil Remove.
Ini terutama masalah untuk animasi pada objek yang memiliki masa pakai yang lama. Ketika objek dikumpulkan sampah, jamnya juga terputus dan sampah dikumpulkan.
Untuk informasi selengkapnya tentang objek jam, lihat Gambaran Umum Animasi dan Sistem Pengaturan Waktu .