Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Nota
Dokumentasi ini ditujukan untuk pengembang .NET Framework yang ingin menggunakan kelas Automation UI terkelola yang ditentukan dalam namespace System.Windows.Automation. Untuk informasi terbaru tentang Automasi UI, lihat Windows Automation API: UI Automation.
Topik ini memperkenalkan panduan dan konvensi untuk menerapkan IInvokeProvider, termasuk informasi tentang peristiwa dan properti. Tautan ke referensi tambahan tercantum di akhir topik.
Pola InvokePattern kontrol digunakan untuk mendukung kontrol yang tidak mempertahankan status saat diaktifkan, melainkan memulai atau melakukan tindakan tunggal yang tidak ambigu. Kontrol yang memang mempertahankan status, seperti kotak centang dan tombol radio, harus diimplementasikan sebagai IToggleProvider dan ISelectionItemProvider masing-masing. Untuk contoh kontrol yang mengimplementasikan pola kontrol Pemanggilan, lihat Pemetaan Pola Kontrol untuk Klien Automasi UI.
Pedoman dan Konvensi Implementasi
Saat menerapkan pola pengendalian Invoke, perhatikan panduan dan konvensi berikut:
Kontrol menerapkan IInvokeProvider jika perilaku yang sama tidak diekspos oleh penyedia pola kontrol lain. Misalnya, jika Invoke metode pada kontrol melakukan tindakan yang sama dengan Expand metode atau Collapse , kontrol tidak boleh menerapkan IInvokeProvider.
Memanggil kontrol umumnya dilakukan dengan mengklik atau mengeklik dua kali atau menekan ENTER, pintasan keyboard yang telah ditentukan sebelumnya, atau beberapa kombinasi penekanan tombol alternatif.
InvokedEvent dimunculkan pada kontrol yang telah diaktifkan (sebagai respons terhadap kontrol yang melakukan tindakan terkait). Jika memungkinkan, peristiwa harus dinaikkan setelah kontrol menyelesaikan tindakan dan dikembalikan tanpa memblokir. Peristiwa yang Dipanggil harus dijalankan sebelum memproses permintaan Panggil dalam skenario berikut:
Tidak mungkin atau praktis untuk menunggu sampai tindakan selesai.
Tindakan ini memerlukan interaksi pengguna.
Tindakan ini memakan waktu dan akan menyebabkan klien yang melakukan panggilan terblokir untuk jangka waktu yang signifikan.
Jika memanggil kontrol memiliki efek samping yang signifikan, efek samping tersebut harus diekspos melalui properti HelpText. Misalnya, meskipun Invoke tidak terkait dengan pilihan, Invoke dapat menyebabkan kontrol lain dipilih.
Efek mengarah kursor (atau mouse-over) umumnya bukan merupakan peristiwa yang dipicu. Namun, kontrol yang melaksanakan aksi (bukan sekadar memberikan efek visual) berdasarkan keadaan hover harus mendukung InvokePattern pola kontrol.
Nota
Implementasi ini dianggap sebagai masalah aksesibilitas jika kontrol hanya bisa diaktifkan akibat dampak dari penggunaan mouse.
Memanggil kontrol berbeda dengan memilih item. Namun, tergantung pada kontrol, memanggilnya dapat menyebabkan item dipilih sebagai efek samping. Misalnya, memanggil item daftar dokumen Microsoft Word di folder Dokumen Saya memilih item dan membuka dokumen.
Elemen dapat menghilang dari pohon Automation UI segera setelah dipanggil. Meminta informasi dari elemen yang disediakan oleh panggilan balik peristiwa mungkin gagal sebagai akibatnya. Informasi cache yang telah diambil sebelumnya adalah solusi yang disarankan.
Kontrol dapat menerapkan beberapa pola kontrol. Misalnya, kontrol Warna Isian pada toolbar Microsoft Excel menggunakan pola kontrol InvokePattern dan ExpandCollapsePattern. ExpandCollapsePattern mengekspos menu dan InvokePattern mengisi pilihan aktif dengan warna yang dipilih.
Anggota yang Diperlukan untuk IInvokeProvider
Properti dan metode berikut diperlukan untuk menerapkan IInvokeProvider.
| Anggota yang diperlukan | Jenis anggota | Catatan |
|---|---|---|
| Invoke | Metode |
Invoke adalah panggilan asinkron dan harus segera kembali tanpa memblokir. Perilaku ini sangat penting untuk kontrol yang, secara langsung atau tidak langsung, meluncurkan dialog modal saat dipanggil. Setiap klien UI Otomatisasi yang memicu peristiwa akan tetap diblokir sampai dialog modal ditutup. |
Pengecualian
Penyedia harus memberikan pengecualian berikut.
| Tipe Pengecualian | Keadaan |
|---|---|
| ElementNotEnabledException | Jika kontrol tidak diaktifkan. |