Gambaran Umum Pola Kontrol Automasi UI
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.
Automasi UI menggunakan pola kontrol untuk mewakili perilaku kontrol umum. Misalnya, Anda menggunakan pola kontrol Panggil 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.
Nota
Kontrol agregat dibangun dengan kontrol turunan 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 wajib diimplementasikan oleh kontrol anak.
Topik ini berisi bagian berikut:
- Komponen Pola Kontrol Automasi UI
- Pola Kontrol di Penyedia dan Klien
- Pola Kontrol Dinamis
- Pola Kontrol dan Antarmuka Terkait
- Topik terkait
Komponen Pola Kontrol Automasi UI
Pola kontrol mendukung metode, properti, peristiwa, dan hubungan yang diperlukan untuk menentukan fungsionalitas diskrit yang tersedia dalam kontrol.
- Metode ini memungkinkan klien Automation UI untuk memanipulasi kontrol.
- Properti dan peristiwa menyediakan informasi tentang fungsionalitas dan status kontrol.
- Hubungan antara elemen Automation UI dan induk, anak, dan saudaranya menjelaskan struktur elemen di pohon Automation UI.
Pola kontrol berkaitan dengan kontrol yang mirip dengan cara antarmuka terkait dengan objek Model Objek Komponen (COM). Di COM, Anda dapat mengkueri objek untuk menanyakan antarmuka apa yang didukungnya, lalu menggunakan antarmuka tersebut untuk mengakses fungsionalitas. Dalam 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 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 gulir ke Automasi UI melalui IScrollProvider, dan UI Automation mengekspos fungsionalitas kepada klien melalui IUIAutomationScrollPattern.
Pola Kontrol Dinamis
Beberapa kontrol tidak selalu mendukung serangkaian pola kontrol yang sama. Misalnya, pengaturan edit multibaris memungkinkan pengguliran vertikal hanya ketika terdapat lebih banyak baris teks daripada yang dapat ditampilkan di area tampilan. Pengguliran dinonaktifkan ketika cukup teks dihapus sehingga pengguliran tidak lagi diperlukan. Untuk contoh ini, IUIAutomationScrollPattern didukung secara dinamis, tergantung pada berapa banyak teks dalam kotak edit.
Pola Kontrol dan Antarmuka Terkait
Tabel berikut ini menjelaskan pola kontrol Automation UI. 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 di margin yang tersambung ke teks dokumen. |
Dock | IDockProvider | IUIAutomationDockPattern | Digunakan untuk kontrol yang dapat ditambatkan dalam kontainer docking, misalnya, toolbar atau palet alat. |
Seret | IDragProvider | IUIAutomationDragPattern | Digunakan untuk mendukung kontrol yang dapat diseret, atau kontrol dengan item yang dapat diseret. |
TargetJatuh | IDropTargetProvider | IUIAutomationDropTargetPattern | Digunakan untuk mendukung kontrol yang dapat menjadi target operasi seret dan letakkan. |
PerluasLipat | 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 kendali yang memiliki sel dalam kisi. Sel individual harus mendukung pola GridItem, misalnya, setiap sel dalam tampilan detail Windows Explorer. |
Memanggil | IInvokeProvider | IUIAutomationInvokePattern | Digunakan untuk kontrol yang dapat dipanggil, seperti tombol. |
ItemContainer | IItemContainerProvider | IUIAutomationItemContainerPattern | Digunakan untuk kontrol yang dapat berisi item lain. |
LegacyIAccessible | ILegacyIAccessibleProvider | IUIAutomationLegacyIAccessiblePattern | Digunakan untuk mengekspos properti dan metode Aksesibilitas Aktif Microsoft ke klien Automation UI. |
TampilanGanda | 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 pada komponen yang memiliki item individual dalam daftar yang dapat digulir, misalnya, kontrol daftar pada komponen kotak kombo. |
Pilihan | ISelectionProvider | IUIAutomationSelectionPattern | Digunakan untuk kontrol kontainer pilihan, misalnya, kotak daftar dan kotak kombo. |
SelectionItem | ISelectionItemProvider | IUIAutomationSelectionItemPattern | Digunakan untuk item individual 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 menerapkan pola kontrol Spreadsheet juga harus menerapkan pola kontrol Grid. |
SpreadsheetItem | ISpreadsheetItemProvider | IUIAutomationSpreadsheetItemPattern | Digunakan untuk mengungkapkan properti sel dalam lembar kerja atau dokumen lain yang berbasis kisi-kisi. Kontrol yang menerapkan 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. |
Tabel | ITableProvider | IUIAutomationTablePattern | Digunakan untuk kontrol yang memiliki tabel dan informasi tajuk. |
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 dari 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. |
Alihkan | IToggleProvider | IUIAutomationTogglePattern | Digunakan untuk kontrol di mana status dapat diubah, 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 Transformasi ada di perancang, formulir, editor grafis, dan aplikasi gambar. |
Nilai | IValueProvider | IUIAutomationValuePattern | Digunakan untuk kontrol yang memiliki nilai yang tidak terletak dalam rentang tertentu, misalnya, pemilih tanggal-waktu. |
Item Tervirtualisasi | IVirtualizedItemProvider | IUIAutomationVirtualizedItemPattern | Digunakan untuk kontrol yang berfungsi dengan item-item dalam daftar virtual. |
Jendela | IWindowProvider | IUIAutomationWindowPattern | Digunakan untuk jendela. Contohnya adalah jendela aplikasi tingkat atas, jendela anak antarmuka beberapa dokumen (MDI), dan kotak dialog. |
Topik terkait