Menerapkan Pola Kontrol UI Automation ExpandCollapse
Catatan
Dokumentasi ini ditujukan untuk pengembang .NET Framework yang ingin menggunakan kelas UI Automation terkelola yang ditentukan pada namespace System.Windows.Automation. Untuk informasi terbaru tentang UI Automation, lihat API Automasi Windows: Automasi Antarmuka Pengguna.
Topik ini memperkenalkan pedoman dan konvensi untuk menerapkan IExpandCollapseProvider, termasuk informasi tentang properti, metode, dan peristiwa. Link ke referensi tambahan tercantum di akhir gambaran umum.
Pola kontrol ExpandCollapsePattern digunakan untuk mendukung kontrol yang meluas secara visual untuk menampilkan lebih banyak konten dan menciut untuk menyembunyikan konten. Untuk contoh kontrol yang menerapkan pola kontrol ini, baca Pemetaan Pola Kontrol untuk Klien UI Automation.
Pedoman dan Konvensi Implementasi
Saat menerapkan pola kontrol ExpandCollapse, perhatikan pedoman dan konvensi berikut:
Kontrol gabungan—dibuat dengan objek turunan yang menyediakan UI dengan fungsionalitas luaskan/ciutkan—harus mendukung pola kontrol ExpandCollapsePattern sedangkan elemen turunannya tidak. Misalnya, kontrol kotak kombo dibuat dengan kombinasi kotak daftar, tombol, dan kontrol edit, tetapi hanya kotak kombo induk yang harus mendukung ExpandCollapsePattern.
Catatan
Pengecualian adalah kontrol menu, yang merupakan kumpulan objek MenuItem individual. Objek MenuItem dapat mendukung pola kontrol ExpandCollapsePattern, tetapi kontrol Menu induk tidak bisa. Pengecualian serupa berlaku untuk kontrol Tree dan Tree Item.
Bila ExpandCollapseState suatu kontrol diatur ke LeafNode, fungsi ExpandCollapsePattern apa pun saat ini tidak aktif untuk kontrol tersebut dan satu-satunya informasi yang dapat diperoleh menggunakan pola kontrol ini adalah ExpandCollapseState. Jika ada objek anak yang kemudian ditambahkan, fungsi ExpandCollapseState berubah dan ExpandCollapsePattern diaktifkan.
ExpandCollapseState mengacu pada visibilitas objek anak langsung saja; itu tidak mengacu pada visibilitas semua objek turunan.
Fungsionalitas Perluas dan Ciutkan adalah khusus untuk kontrol. Berikut ini adalah contoh perilaku tersebut.
Menu Office Personal dapat berupa MenuItem tri-state (Expanded, Collapsed dan PartiallyExpanded) tempat kontrol menentukan status yang akan diadopsi saat Expand atau Collapse dipanggil.
Memanggil Expand pada TreeItem dapat menampilkan semua turunan atau hanya turunan langsung.
Jika pemanggilan Expand atau Collapse pada kontrol mempertahankan status turunannya, peristiwa perubahan visibilitas harus dikirim, bukan peristiwa perubahan status. Jika kontrol induk tidak mempertahankan status turunannya saat diciutkan, kontrol dapat menghancurkan semua keturunan yang tidak lagi terlihat dan membangkitkan peristiwa hancur; atau mungkin mengubah ExpandCollapseState untuk setiap turunan dan meningkatkan peristiwa perubahan visibilitas.
Untuk menjamin navigasi, objek yang diinginkan berada di pohon UI Automation (dengan status visibilitas yang sesuai) terlepas dari induknya ExpandCollapseState. Jika turunan dibuat sesuai permintaan, turunan tersebut mungkin hanya muncul di pohon UI Automation setelah ditampilkan untuk pertama kali atau hanya saat turunan terlihat.
Anggota yang Diperlukan untuk IExpandCollapseProvider
Properti dan metode berikut perlu menerapkan IExpandCollapseProvider.
Anggota yang diperlukan | Jenis anggota | Catatan |
---|---|---|
ExpandCollapseState | Properti | Tidak |
Expand | Metode | Tidak |
Collapse | Metode | Tidak |
AutomationPropertyChangedEventHandler | Kejadian | Kontrol ini tidak memiliki peristiwa terkait; gunakan delegasi generik ini. |
Pengecualian
Penyedia harus menampilkan pengecualian berikut.
Jenis pengecualian | Kondisi |
---|---|
InvalidOperationException | Baik Expand atau Collapse dipanggil saat ExpandCollapseState = LeafNode. |