Memanggil Pola Kontrol

Menjelaskan panduan dan konvensi untuk menerapkan IInvokeProvider, termasuk informasi tentang metode. Pola kontrol Panggil digunakan untuk mendukung kontrol yang tidak mempertahankan status saat diaktifkan, melainkan memulai atau melakukan satu tindakan yang tidak ambigu.

Kontrol yang mempertahankan status, seperti kotak centang dan tombol radio, harus menerapkan IToggleProvider dan ISelectionProvider masing-masing. Untuk contoh kontrol yang menerapkan pola kontrol ini, lihat Jenis Kontrol dan Pola Kontrol yang Didukung.

Topik ini berisi bagian berikut.

Panduan dan Konvensi Implementasi

Saat menerapkan pola kontrol Panggil , perhatikan pedoman dan konvensi berikut:

  • Kontrol mengimplementasikan IInvokeProvider jika perilaku yang sama tidak terekspos melalui penyedia pola kontrol lain. Misalnya, jika metode IUIAutomationInvokePattern::Invoke pada kontrol melakukan tindakan yang sama dengan metode IUIAutomationExpandCollapsePattern::Expand atau Collapse , kontrol tidak boleh mengimplementasikan IInvokeProvider.

  • Menggunakan kontrol umumnya dilakukan dengan mengklik atau mengklik dua kali atau menekan ENTER, pintasan papan ketik yang telah ditentukan, atau beberapa kombinasi alternatif dari penekanan tombol.

  • Peristiwa Yang dipanggil (UIA_Invoke_InvokedEventId) dinaikkan pada kontrol yang telah diaktifkan (sebagai respons terhadap kontrol yang melakukan tindakan terkait). Jika memungkinkan, aktivitas harus dinaikkan setelah kontrol menyelesaikan tindakan dan kembali tanpa pemblokiran. Peristiwa yang Dipanggil (UIA_Invoke_InvokedEventId) harus dinaikkan sebelum melayani permintaan Panggil dalam skenario berikut:

    • Tidak mungkin atau praktis untuk menunggu sampai tindakan selesai.
    • Permintaan ini memerlukan interaksi pengguna.
    • Tindakan ini memakan waktu dan akan menyebabkan klien panggilan memblokir dalam waktu yang cukup lama.
  • Jika memanggil kontrol memiliki efek samping yang signifikan, efek samping tersebut harus diekspos melalui properti HelpText . Misalnya, meskipun IUIAutomationInvokePattern::Invoke tidak terkait dengan pilihan, Panggil dapat menyebabkan kontrol lain dipilih.

  • Efek hover (atau mouse-over) umumnya bukan merupakan peristiwa yang Dipanggil . Namun, kontrol yang melakukan tindakan (dibandingkan dengan menyebabkan efek visual) berdasarkan status hover harus mendukung pola kontrol Panggil .

    Catatan

    Penerapan ini dianggap sebagai masalah aksesibilitas jika kontrol hanya dapat digunakan sebagai akibat dari efek samping terkait mouse.

  • Menggunakan kontrol berbeda dengan memilih item. Namun, tergantung pada kontrol, menggunakannya dapat menyebabkan item dipilih sebagai efek samping. Misalnya, meminta item daftar dokumen Microsoft Word di folder My Documents memilih item dan membuka dokumen.

  • Elemen dapat menghilang dari pohon Microsoft UI Automation segera setelah dipanggil. Meminta informasi dari elemen yang disediakan melalui panggilan balik aktivitas mungkin gagal karenanya. Informasi cache yang diperoleh sebelumnya adalah solusi yang disarankan.

  • Kontrol dapat menggunakan beberapa pola kontrol. Misalnya, kontrol Warna Isian pada toolbar Microsoft Excel mengimplementasikan pola kontrol Invoke dan ExpandCollapse . Pola kontrol ExpandCollapse mengekspos menu dan pola kontrol Panggil mengisi pilihan aktif dengan warna yang dipilih.

Anggota yang Diperlukan untuk IInvokeProvider

Metode berikut diperlukan untuk mengimplementasikan antarmuka IInvokeProvider .

Anggota yang diperlukan Jenis anggota Catatan
Gunakan Metode Panggil adalah panggilan asinkron dan harus segera kembali tanpa memblokir.
Perilaku ini sangat penting untuk kontrol yang, secara langsung atau tidak langsung, meluncurkan dialog modal ketika diminta. Setiap klien UI Automation yang membuat acara akan tetap diblokir sampai dialog modal ditutup.

Pola kontrol ini tidak memiliki properti atau peristiwa terkait.

Jenis Kontrol dan Pola Kontrol yang Didukung

Gambaran Umum Pola Kontrol UI Automation

Gambaran Umum Pohon UI Automation

UIA_Invoke_InvokedEventId