Gambaran Umum Pola Kontrol UI Automation

Pola kontrol adalah implementasi antarmuka yang mengekspos aspek tertentu dari fungsionalitas kontrol ke aplikasi klien Microsoft UI Automation. Klien menggunakan properti dan metode yang diekspos melalui pola kontrol untuk mengambil informasi tentang kemampuan kontrol tertentu, atau untuk memanipulasi aspek tertentu dari perilaku kontrol. Misalnya, kontrol yang menyajikan antarmuka tabular menggunakan pola kontrol Kisi untuk mengekspos jumlah baris dan kolom dalam tabel, dan untuk memungkinkan klien mengambil item dari tabel.

UI Automation menggunakan pola kontrol untuk mewakili perilaku kontrol umum. Misalnya, Anda menggunakan pola Kontrol pemanggilan untuk kontrol yang dapat dipanggil, seperti tombol, dan pola kontrol Gulir untuk kontrol yang memiliki bilah gulir, seperti kotak daftar, tampilan daftar, atau kotak kombo. Karena setiap pola kontrol mewakili fungsionalitas terpisah, pola kontrol dapat digabungkan untuk menggambarkan serangkaian fungsionalitas lengkap yang didukung oleh kontrol tertentu.

Catatan

Kontrol agregat dibangun dengan kontrol anak yang menyediakan antarmuka pengguna untuk fungsionalitas yang diekspos oleh induk, dan induk harus menerapkan semua pola kontrol yang biasanya terkait dengan kontrol turunannya. Pada gilirannya, pola kontrol yang sama tidak perlu diterapkan oleh kontrol turunan.

 

Topik ini berisi bagian berikut:

Komponen Pola Kontrol UI Automation

Pola kontrol mendukung metode, properti, peristiwa, dan hubungan yang diperlukan untuk menentukan fungsionalitas diskrit yang tersedia dalam kontrol.

  • Metode memungkinkan klien UI Automation memanipulasi kontrol.
  • Properti dan peristiwa menyediakan informasi tentang fungsionalitas dan status kontrol.
  • Hubungan antara elemen Automation UI dan induknya, anak-anak, dan saudara kandungnya menjelaskan struktur elemen di pohon Automation UI.

Pola kontrol terkait dengan kontrol yang mirip dengan cara antarmuka terkait dengan objek Model Objek Komponen (COM). Di COM, Anda dapat meminta objek untuk menanyakan antarmuka apa yang didukungnya, lalu menggunakan antarmuka tersebut untuk mengakses fungsionalitas. Di Automasi UI, klien dapat meminta kontrol pola kontrol mana yang didukungnya, lalu berinteraksi dengan kontrol melalui properti, metode, peristiwa, dan struktur yang diekspos oleh pola kontrol yang didukung.

Pola Kontrol di Penyedia dan Klien

Penyedia Automation UI menerapkan antarmuka pola kontrol untuk mengekspos perilaku yang sesuai untuk bagian fungsionalitas tertentu yang didukung oleh kontrol. Antarmuka ini tidak secara langsung diekspos ke klien, tetapi digunakan oleh inti Automation UI untuk mengimplementasikan serangkaian antarmuka klien lain. Misalnya, penyedia mengekspos fungsionalitas pengguliran ke Automasi UI melalui IScrollProvider, dan Automasi UI mengekspos fungsionalitas kepada klien melalui IUIAutomationScrollPattern.

Pola Kontrol Dinamis

Beberapa kontrol tidak selalu mendukung rangkaian pola kontrol yang sama. Misalnya, kontrol edit multibaris memungkinkan pengguliran vertikal hanya ketika berisi lebih banyak baris teks daripada yang dapat ditampilkan di area yang dapat dilihat. Pengguliran dinonaktifkan jika cukup banyak teks yang dihapus sehingga pengguliran tidak lagi diperlukan. Untuk contoh ini, IUIAutomationScrollPattern didukung secara dinamis, tergantung pada berapa banyak teks dalam kotak edit.

Tabel berikut menjelaskan pola kontrol UI Automation. Tabel ini juga mencantumkan antarmuka penyedia yang digunakan untuk mengimplementasikan pola kontrol, dan antarmuka klien yang digunakan untuk mengaksesnya.

Nama Antarmuka penyedia Antarmuka klien Deskripsi
Anotasi IAnnotationProvider IUIAutomationAnnotationPattern Digunakan untuk mengekspos properti anotasi dalam dokumen, misalnya komentar dalam margin yang tersambung ke teks dokumen.
Dermaga IDockProvider IUIAutomationDockPattern Digunakan untuk kontrol yang dapat ditambatkan dalam kontainer docking, misalnya, toolbar atau palet alat.
Drag IDragProvider IUIAutomationDragPattern Digunakan untuk mendukung kontrol yang dapat diseret, atau kontrol dengan item yang dapat diseret.
DropTarget IDropTargetProvider IUIAutomationDropTargetPattern Digunakan untuk mendukung kontrol yang dapat menjadi target operasi seret dan letakkan.
ExpandCollapse IExpandCollapseProvider IUIAutomationExpandCollapsePattern Digunakan untuk kontrol yang dapat diperluas atau diciutkan, misalnya, item menu dalam aplikasi, seperti menu File.
Kisi IGridProvider IUIAutomationGridPattern Digunakan untuk kontrol yang mendukung fungsionalitas kisi, seperti ukuran dan pemindahan ke sel tertentu, misalnya, tampilan ikon besar di Windows Explorer atau tabel sederhana di Microsoft Office Word.
GridItem IGridItemProvider IUIAutomationGridItemPattern Digunakan untuk kontrol yang memiliki sel dalam kisi. Sel individual harus mendukung pola GridItem, misalnya, setiap sel dalam tampilan detail Windows Explorer.
Gunakan IInvokeProvider IUIAutomationInvokePattern Digunakan untuk kontrol yang dapat dipanggil, seperti tombol.
ItemContainer IItemContainerProvider IUIAutomationItemContainerPattern Digunakan untuk kontrol yang bisa memuat item lain.
LegacyIAccessible ILegacyIAccessibleProvider IUIAutomationLegacyIAccessiblePattern Digunakan untuk mengekspos properti dan metode Aksesibilitas Aktif Microsoft ke klien Automation UI.
MultipleView IMultipleViewProvider IUIAutomationMultipleViewPattern Digunakan untuk kontrol yang dapat beralih di antara beberapa representasi kumpulan informasi, data, atau turunan yang sama, misalnya, kontrol tampilan daftar di mana data tersedia dalam gambar mini, petak peta, ikon, daftar, atau tampilan detail.
ObjectModel IObjectModelProvider IUIAutomationObjectModelPattern Digunakan untuk mengekspos penunjuk ke model objek yang mendasar dari dokumen. Pola kontrol ini memungkinkan klien untuk menavigasi dari elemen Automation UI ke dalam model objek yang mendasar.
RangeValue IRangeValueProvider IUIAutomationRangeValuePattern Digunakan untuk kontrol yang memiliki rentang nilai. Misalnya, kontrol spinner yang menampilkan tahun mungkin memiliki rentang 1900—2010, sementara kontrol spinner yang menampilkan bulan akan memiliki rentang 1—12.
Gulir IScrollProvider IUIAutomationScrollPattern Digunakan untuk kontrol yang dapat menggulir ketika ada lebih banyak informasi daripada yang dapat ditampilkan di area kontrol yang dapat dilihat.
ScrollItem IScrollItemProvider IUIAutomationScrollItemPattern Digunakan untuk kontrol yang memiliki item individual dalam daftar yang menggulir, misalnya, kontrol daftar dalam kontrol kotak kombo.
Pilihan ISelectionProvider IUIAutomationSelectionPattern Digunakan untuk kontrol kontainer pilihan, misalnya, kotak daftar dan kotak kombo.
SelectionItem ISelectionItemProvider IUIAutomationSelectionItemPattern Digunakan untuk masing-masing item dalam kontrol kontainer pilihan, seperti kotak daftar dan kotak kombo.
Spreadsheet ISpreadsheetProvider IUIAutomationSpreadsheetPattern Digunakan untuk mengekspos konten spreadsheet atau dokumen berbasis kisi lainnya. Kontrol yang mengimplementasikan pola kontrol Spreadsheet juga harus menerapkan pola kontrol Grid.
SpreadsheetItem ISpreadsheetItemProvider IUIAutomationSpreadsheetItemPattern Digunakan untuk mengekspos properti sel dalam lembar bentang atau dokumen berbasis kisi lainnya. Kontrol yang mengimplementasikan pola kontrol SpreadsheetItem juga harus menerapkan pola kontrol GridItem.
Gaya IStylesProvider IUIAutomationStylesPattern Digunakan untuk menjelaskan elemen UI yang memiliki gaya, warna isian, pola isian, atau bentuk tertentu.
SynchronizedInput ISynchronizedInputProvider IUIAutomationSynchronizedInputPattern Digunakan untuk kontrol yang menerima input keyboard atau mouse.
Meja ITableProvider IUIAutomationTablePattern Digunakan untuk kontrol yang memiliki informasi kisi dan header.
TableItem ITableItemProvider IUIAutomationTableItemPattern Digunakan untuk item dalam tabel.
Teks ITextProvider IUIAutomationTextPattern Digunakan untuk mengedit kontrol dan dokumen yang mengekspos informasi tekstual.
TextEdit ITextEditProvider IUIAutomationTextEditPattern Digunakan untuk kontrol edit yang memodifikasi teks secara terprogram, misalnya kontrol yang melakukan koreksi otomatis atau mengaktifkan komposisi input.
TextChild ITextChildProvider IUIAutomationTextChildPattern Digunakan untuk mengakses leluhur terdekat elemen yang mendukung pola kontrol Teks.
TextRange ITextRangeProvider IUIAutomationTextRange Digunakan untuk mengambil konten tekstual, atribut teks, dan objek yang disematkan dari kontrol berbasis teks seperti kontrol edit dan dokumen.
Geser IToggleProvider IUIAutomationTogglePattern Digunakan untuk kontrol di mana status dapat dialihkan, misalnya, kotak centang dan item menu yang dapat dicentang.
Transformasi ITransformProvider IUIAutomationTransformPattern Digunakan untuk kontrol yang dapat diubah ukurannya, dipindahkan, dan diputar. Penggunaan umum untuk pola kontrol Transform adalah dalam desainer, formulir, editor grafis, dan aplikasi menggambar.
Nilai IValueProvider IUIAutomationValuePattern Digunakan untuk kontrol yang memiliki nilai yang tidak berada dalam rentang tertentu, misalnya, pemilih tanggal-waktu.
VirtualizedItem IVirtualizedItemProvider IUIAutomationVirtualizedItemPattern Digunakan untuk kontrol yang bekerja dengan item dalam daftar virtual.
Jendela IWindowProvider IUIAutomationWindowPattern Digunakan untuk jendela. Contohnya adalah jendela aplikasi tingkat atas, jendela anak antarmuka multi-dokumen (MDI), dan kotak dialog.

 

Konseptual

Menerapkan Pola Kontrol Automasi UI

Pemetaan Pola Kontrol untuk Klien UI Automation