FrameworkElement.LayoutUpdated Kejadian

Definisi

Terjadi ketika tata letak pohon visual berubah, karena properti yang relevan dengan tata letak mengubah nilai atau beberapa tindakan lain yang menyegarkan tata letak.

// Register
event_token LayoutUpdated(EventHandler<IInspectable> const& handler) const;

// Revoke with event_token
void LayoutUpdated(event_token const* cookie) const;

// Revoke with event_revoker
FrameworkElement::LayoutUpdated_revoker LayoutUpdated(auto_revoke_t, EventHandler<IInspectable> const& handler) const;
public event System.EventHandler<object> LayoutUpdated;
function onLayoutUpdated(eventArgs) { /* Your code */ }
frameworkElement.addEventListener("layoutupdated", onLayoutUpdated);
frameworkElement.removeEventListener("layoutupdated", onLayoutUpdated);
- or -
frameworkElement.onlayoutupdated = onLayoutUpdated;
Public Custom Event LayoutUpdated As EventHandler(Of Object) 
<frameworkElement LayoutUpdated="eventhandler"/>
 

Jenis Acara

Keterangan

LayoutUpdated adalah peristiwa seumur hidup objek terakhir yang terjadi dalam urutan beban XAML sebelum kontrol siap untuk interaksi. Namun, LayoutUpdated juga dapat terjadi pada durasi selama masa pakai objek, karena berbagai alasan: perubahan properti, perubahan ukuran jendela, atau permintaan tata letak runtime (UpdateLayout atau templat kontrol yang diubah). Peristiwa LayoutUpdated diaktifkan setelah semua peristiwa SizeChanged dalam urutan tata letak terjadi.

LayoutUpdated dapat terjadi ketika objek tempat handler terpasang tidak selalu mengubah apa pun di pohon visual di bawahnya. Misalnya, bayangkan kontainer tata letak di mana ada dua elemen anak yang berbagi ruang. Jika objek pertama mengubah properti yang memaksa tata letak baru, kedua objek mengaktifkan LayoutUpdated karena objek kedua mungkin diposisikan ulang meskipun tata letak anak perusahaannya sendiri tidak berubah.

Saat Anda menangani LayoutUpdated, jangan mengandalkan nilai pengirim . Untuk LayoutUpdated, pengirim selalu null, terlepas dari di mana handler dilampirkan. Hal ini untuk mencegah penangan menetapkan arti apa pun kepada pengirim, seperti menyiratkan bahwa itu adalah elemen tertentu yang menembakkan peristiwa keluar dari pohon visual. LayoutUpdated menyiratkan bahwa sesuatu di pohon visual keseluruhan telah berubah, dan setiap objek tertentu di mana saja di pohon memiliki opsi untuk menangani kejadian ini. Jika Anda terbiasa dengan desain API render tingkat bawah, Anda dapat menyamakan LayoutUpdated yang diaktifkan mirip dengan bendera "diperlukan redraw" yang diatur sebagai bagian dari logika penyajian mode yang digerakkan objek dan dipertahankan.

Karena LayoutUpdated diaktifkan dalam banyak keadaan dan tidak selalu spesifik untuk objek yang benar-benar berubah, pertimbangkan apakah menangani peristiwa SizeChanged sebagai gantinya lebih sesuai untuk skenario Anda.

Perilaku Windows 8

Windows 8 mengalami masalah dengan melacak beberapa pendengar untuk kejadian ini. Jika Anda memiliki beberapa listener/handler untuk peristiwa tersebut, mencoba menghapus salah satunya akan mengakibatkan penghapusan semuanya. Masalah ini diperbaiki dimulai dengan Windows 8.1; menghapus penanganan aktivitas menggunakan -= sintaksis dengan benar hanya menghapus satu pendengar pada satu waktu. Sebagian besar kode tidak akan memerlukan perubahan atau pemeriksaan perilaku karena berurusan dengan beberapa pendengar per peristiwa adalah skenario yang jarang terjadi.

Aplikasi yang dikompilasi untuk Windows 8 tetapi berjalan di Windows 8.1 terus menggunakan perilaku Windows 8.

Berlaku untuk

Lihat juga