Bahasa

Window.SizeChanged Kejadian

Definisi

Terjadi ketika ukuran penyajian jendela telah berubah.

// Register
event_token SizeChanged(TypedEventHandler<IInspectable, WindowSizeChangedEventArgs const&> const& handler) const;

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

// Revoke with event_revoker
Window::SizeChanged_revoker SizeChanged(auto_revoke_t, TypedEventHandler<IInspectable, WindowSizeChangedEventArgs const&> const& handler) const;
public event TypedEventHandler<object,WindowSizeChangedEventArgs> SizeChanged;
function onSizeChanged(eventArgs) { /* Your code */ }
window.addEventListener("sizechanged", onSizeChanged);
window.removeEventListener("sizechanged", onSizeChanged);
- or -
window.onsizechanged = onSizeChanged;
Public Custom Event SizeChanged As TypedEventHandler(Of Object, WindowSizeChangedEventArgs) 

Jenis Acara

Keterangan

Peristiwa ini terjadi setiap kali ada perubahan dalam nilai Batas untuk jendela. Ini mungkin karena pengguna mengubah ukuran aplikasi Anda atau mengubah orientasi tampilan saat aplikasi dimaksimalkan. Pemicu lain adalah jika pengguna memindahkan aplikasi Anda ke layar baru yang memiliki resolusi berbeda.

SizeChanged Tangani peristiwa untuk mengelola hal-hal di UI aplikasi Anda, seperti memindahkan elemen saat ukuran jendela berubah. XAML menggunakan piksel efektif (epx), bukan piksel fisik aktual. Piksel yang efektif adalah unit pengukuran virtual, dan digunakan untuk mengekspresikan dimensi dan penspasian tata letak, terlepas dari kepadatan layar. Nilai Tinggi dan Lebar Batas sama dengan nilai Tinggi dan Lebar WindowSizeChangedEventArgs , sehingga Anda dapat menggunakan salah satu di penanganan aktivitas.

Untuk informasi selengkapnya, lihat Gambaran umum windowing untuk WinUI dan SDK Aplikasi Windows.

Jika Anda melampirkan handler untuk SizeChanged di tingkat Halaman dalam handler untuk peristiwa FrameworkElement.Loaded , Anda harus melepaskan handler dalam penanganan aktivitas FrameworkElement.Unloaded dari Halaman tersebut. Instans Window tetap aktif di antara navigasi halaman dan seharusnya hanya memiliki handler yang aktif untuk kode halaman terbaru.

Orientasi

Anda mungkin ingin mendeteksi bahwa jendela telah berubah dari lanskap menjadi orientasi potret atau sebaliknya. Orientasi jendela mungkin memengaruhi bagaimana Anda ingin kontrol individual dalam aplikasi muncul. Misalnya, Anda mungkin ingin menampilkan daftar data dalam ListView untuk orientasi potret, tetapi dalam GridView untuk orientasi lanskap. Biasanya Anda akan membandingkan rasio Width untuk Height menentukan orientasi berdasarkan Batas Jendela, dan Anda akan melakukan ini setiap kali Window.SizeChanged terjadi. Persis bagaimana Anda menafsirkan Width/Height rasio terserah Anda.

Ukuran minimum dan maksimum

Jangan gunakan handler SizeChanged untuk memberlakukan ukuran minimum atau maksimum yang dapat diubah ukuran aplikasi Anda. Sebagai gantinya, gunakan properti OverlappedPresenter ini:

Namun, logika Anda untuk mengubah status visual harus dapat memuat status yang dirancang untuk lebar minimum yang Anda inginkan, dan Anda biasanya akan menggunakan nilai dan Window.SizeChanged penanganan Batas untuk mendeteksi kapan jendela aplikasi menggunakan lebar minimum.

Untuk informasi selengkapnya tentang cara menggunakan Window.SizeChanged untuk mendeteksi perubahan di lingkungan jendela aplikasi dan memuat status visual yang sesuai untuk aplikasi Anda, lihat Tata letak responsif dengan XAML.

Peristiwa perubahan ukuran lainnya

Ada beberapa peristiwa lain yang dapat Anda gunakan untuk mendeteksi perubahan ukuran.

AppWindow

Kelas AppWindow memiliki peristiwa Diubah dengan nilai DidSizeChange untuk arg peristiwa.

Tidak seperti kelas Jendela XAML, AppWindow menggunakan Sistem Koordinat Jendela, di mana unit pengukuran dasar adalah piksel perangkat fisik. Jadi gunakan API AppWindow untuk tindakan windowing, seperti mengubah ukuran jendela atau memindahkannya sehubungan dengan sesuatu yang lain di layar.

FrameworkElement

Ada peristiwa lain bernama SizeChanged yang ada pada jenis turunan FrameworkElement (Jendela bukan jenis FrameworkElement ). Peristiwa FrameworkElement.SizeChanged mungkin terjadi dalam banyak keadaan yang sama yang menyebabkan Window.SizeChanged terjadinya. Perubahan ukuran jendela aplikasi dapat menyebabkan elemen visual akar (biasanya Halaman atau panel) mengubah ukurannya. Ini mengatur kaskade invalidasi tata letak untuk sub-elemen apa pun yang menggunakan tata letak adaptif untuk mengisi ruang yang tersedia. Setiap elemen yang memiliki dimensi baru karena kode tata letak akan mengaktifkan peristiwa FrameworkElement.SizeChanged sendiri.

Berlaku untuk

Lihat juga