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.
Topik ini menjelaskan cara menggunakan fungsionalitas yang disediakan oleh pola pengendalian ItemContainer dan VirtualizedItem untuk menemukan dan mengambil informasi tentang item virtual.
- Ikhtisar Virtualisasi
- Bagaimana Pengendalian Mendukung Virtualisasi
- Bagaimana Klien Menemukan dan Mewujudkan Item Virtual
- Contoh
- Topik terkait
Gambaran Umum Virtualisasi
Kontrol yang berisi sejumlah besar item anak dapat menggunakan virtualisasi untuk mengelola item secara efisien. Dengan virtualisasi, kontrol mempertahankan informasi lengkap dalam memori hanya untuk subset item pada waktu tertentu. Biasanya, subset hanya menyertakan item yang saat ini terlihat oleh pengguna. Informasi lengkap tentang item virtual yang tersisa disimpan di penyimpanan dan dimuat ke dalam memori, atau direalisasikan, karena kontrol membutuhkannya, misalnya, karena item baru terlihat oleh pengguna.
Kontrol yang menggunakan virtualisasi menghadapi tantangan karena hanya item yang telah direalisasikan yang sepenuhnya tersedia sebagai elemen Microsoft UI Automation di dalam pohon UI Automation. Item virtual tidak ada di pohon, sehingga informasi tentang item tersebut tidak tersedia untuk klien. Untuk mengambil informasi tentang item virtual, klien memerlukan cara untuk memaksa Automasi UI meneruskan permintaan untuk mewujudkan item ke kontrol. Setelah item direalisasikan, UI Automation dapat membuat elemen UI Automation untuk item-item tersebut. Automasi UI mencakup dua pola pengontrol agar klien dapat bekerja dengan item yang ter-virtualisasi: ItemContainer dan VirtualizedItem.
Bagaimana Kontrol Mendukung Virtualisasi
Kontrol apa pun yang dapat berisi item virtual harus mendukung pola kontrol ItemContainer. Selanjutnya, item apa pun yang dapat divirtualisasi harus mendukung pola kontrol VirtualizedItem. Fungsionalitas yang diekspos oleh pola kontrol ItemContainer dan VirtualizedItem dapat diakses oleh klien melalui antarmuka IUIAutomationItemContainerPattern dan IUIAutomationVirtualizedItemPattern.
Cara Klien Menemukan dan Mewujudkan Item Virtual
Pelanggan dapat menggunakan metode IUIAutomationItemContainerPattern::FindItemByProperty untuk mencari item anak dalam kontainer berdasarkan nilai properti tertentu. Metode ini juga dapat mengambil item pertama dalam kontainer atau item yang mengikuti item yang ditentukan. Jika item anak yang cocok ditemukan, FindItemByProperty mengambil antarmukaIUIAutomationElementuntuk item tersebut. Namun, jika item anak divirtualisasi, antarmuka IUIAutomationElement adalah sebuah placeholder. Kesalahan UIA_E_ELEMENTNOTAVAILABLE terjadi ketika klien mencoba menggunakan antarmuka IUIAutomationElement untuk mengambil nilai properti atau metode panggilan yang belum tersedia. Properti atau metode mana yang tersedia melalui placeholder tergantung pada implementasi kontrol. Satu-satunya persyaratan untuk tempat penampung adalah mendukung antarmuka IUIAutomationVirtualizedItemPattern.
Kesalahan UIA_E_ELEMENTNOTAVAILABLE adalah indikasi kepada klien bahwa item dapat divirtualisasi. Klien harus merespons dengan mengambil antarmuka IUIAutomationVirtualizedItemPattern untuk item, lalu mewujudkan item dengan memanggil metode IUIAutomationVirtualizedItemPattern::Realize. Jika ini berhasil, antarmukaIUIAutomationElement berfungsi penuh dengan semua properti yang sesuai yang tersedia.
Bergantung pada implementasi kontrol, memanggil IUIAutomationVirtualizedItemPattern::Real dapat menyebabkan kontrol menggulir item ke tampilan. Namun, klien tidak boleh mengandalkan item yang menggulir ke tampilan atau dibuat terlihat. Untuk memastikan bahwa item terlihat, klien dapat menggunakan metode IUIAutomationScrollItemPattern::ScrollIntoView.
Contoh
Misalnya kode yang menunjukkan cara menggunakan dukungan Automation UI untuk virtualisasi, lihat Cara Mengambil Item Virtual.
Topik terkait