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.
Gambaran umum ini menjelaskan cara menggunakan Microsoft UI Automation untuk mengekspos konten tekstual, termasuk atribut format dan gaya, kontrol teks di platform yang didukung UI Automation. Kontrol ini termasuk, tetapi tidak terbatas pada, Microsoft .NET Framework TextBox dan RichTextBox serta setara Win32 mereka.
Mengekspos konten tekstual kontrol dicapai melalui penggunaan TextPattern pola kontrol, yang mewakili konten kontainer teks sebagai aliran teks. Pada gilirannya, TextPattern memerlukan dukungan TextPatternRange kelas untuk mengekspos format dan atribut gaya. TextPatternRange mendukung TextPattern dengan mewakili rentang teks yang berdampingan atau tidak bersambung dalam sebuah kontainer teks dengan kumpulan titik akhir Start dan End. TextPatternRange mendukung fungsionalitas seperti pemilihan, perbandingan, pengambilan, dan penelusuran.
Nota
Kelas TextPattern tidak menyediakan sarana untuk menyisipkan atau mengubah teks. Namun, tergantung pada kontrol, ini dapat dicapai melalui Automasi ValuePattern UI atau melalui input keyboard langsung. Lihat Contoh Sisipan Teks TextPattern sebagai contoh.
Fungsionalitas yang dijelaskan dalam gambaran umum ini sangat penting bagi vendor teknologi bantuan dan pengguna akhir mereka. Teknologi bantuan dapat menggunakan Automasi UI untuk mengumpulkan informasi pemformatan teks lengkap untuk pengguna dan menyediakan navigasi terprogram dan pemilihan teks menurut TextUnit (karakter, kata, baris, atau paragraf).
UI Otomasi TextPattern vs. Kerangka Layanan Teks
Text Services Framework (TSF) adalah kerangka kerja sistem sederhana dan dapat diskalakan yang memungkinkan layanan bahasa alami dan input teks tingkat lanjut di desktop dan dalam aplikasi. Selain menyediakan antarmuka bagi aplikasi untuk mengekspos penyimpanan teks mereka, aplikasi ini juga mendukung metadata untuk penyimpanan teks tersebut.
Namun, TSF dirancang untuk aplikasi yang perlu menyuntikkan input ke dalam skenario yang menyadari konteks, sedangkan TextPattern merupakan solusi yang hanya bisa dibaca (dengan solusi terbatas yang disebutkan di atas) bertujuan untuk memberikan akses yang dioptimalkan ke penyimpanan teks untuk pembaca layar dan perangkat Braille.
Singkatnya, teknologi yang mudah diakses yang memerlukan akses baca-saja ke penyimpanan teks dapat menggunakan TextPattern, tetapi akan membutuhkan fungsionalitas TSF yang lebih kompleks untuk input yang sadar konteks.
Tipe Kontrol
Teks
Kontrol Teks adalah elemen dasar yang mewakili sepotong teks di layar.
Kontrol teks mandiri dapat digunakan sebagai label atau teks statis pada formulir. Kontrol teks juga dapat dimuat dalam struktur ListItem, TreeItem atau DataItem.
Nota
Kontrol teks mungkin tidak muncul dalam tampilan konten pohon Automation UI (lihat Gambaran Umum Pohon Automasi UI). Ini karena kontrol teks sering ditampilkan melalui properti Nama kontrol lain. Misalnya, teks yang digunakan untuk memberi label kontrol Edit diekspos melalui properti Nama kontrol Edit. Karena kontrol Edit berada dalam tampilan konten pohon Automation UI, tidak perlu elemen teks itu sendiri berada dalam tampilan pohon Automation UI. Satu-satunya teks yang muncul dalam tampilan konten adalah teks yang bukan informasi redundan. Ini memungkinkan teknologi bantuan untuk memfilter hanya pada bagian informasi yang dibutuhkan pengguna mereka dengan cepat.
Mengedit
Edit kontrol memungkinkan pengguna untuk melihat dan mengedit satu baris teks.
Nota
Baris tunggal teks dapat dibungkus dalam skenario tata letak tertentu.
Dokumen
Kontrol dokumen memungkinkan pengguna menavigasi dan mendapatkan informasi dari beberapa halaman teks.
API Klien TextPattern
| Tipe | Deskripsi |
|---|---|
kelas System.Windows.Automation.TextPattern |
Titik entri untuk model teks Microsoft UI Automation. Kelas ini juga berisi dua TextPattern pendengar acara, TextSelectionChangedEvent dan TextChangedEvent. |
kelas System.Windows.Automation.Text.TextPatternRange |
Representasi rentang teks dalam kontainer teks yang mendukung TextPattern. Pengguna UI Automation harus berhati-hati mengenai validitas rentang teks saat ini yang dibuat menggunakan TextPatternRange. Jika teks asli dalam kontrol teks sepenuhnya digantikan oleh teks baru, rentang teks saat ini menjadi tidak valid. Namun, rentang teks mungkin masih memiliki kemungkinan berfungsi dengan baik jika hanya sebagian dari teks asli yang diubah dan kontrol teks yang mendasar mengelola teks 'penunjuk' dengan jangkar (atau titik akhir) daripada dengan penempatan karakter absolut. Klien dapat mendengarkan TextChangedEvent pemberitahuan tentang setiap perubahan pada konten tekstual yang sedang mereka kerjakan. |
kelas System.Windows.Automation.AutomationTextAttribute |
Digunakan untuk mengidentifikasi atribut pemformatan rentang teks. |
API Penyedia TextPattern
Elemen atau kontrol UI yang mendukung TextPattern dengan mengimplementasikan ITextProvider antarmuka dan ITextRangeProvider , baik secara asli atau melalui proksi Microsoft UI Automation, mampu mengekspos informasi atribut terperinci untuk teks apa pun yang dikandungnya selain menyediakan kemampuan navigasi yang kuat.
Penyedia TextPattern tidak harus mendukung semua atribut teks jika kontrol tidak memiliki dukungan untuk atribut tertentu.
Penyedia TextPattern harus mendukung GetSelection dan Select fungsi jika kontrol mendukung pemilihan teks atau penempatan kursor teks (atau karet sistem) dalam area teks. Jika kontrol tidak mendukung fungsionalitas ini, maka tidak perlu mendukung salah satu metode ini. Namun, kontrol harus mengekspos jenis pilihan teks yang didukungnya dengan mengimplementasikan SupportedTextSelection properti .
Penyedia TextPattern harus selalu mendukung konstanta TextUnit, Character, dan Document serta konstanta lain TextUnit yang mampu didukungnya.
Nota
Penyedia dapat melewati dukungan untuk sebuah TextUnit tertentu dengan beralih ke TextUnit terbesar berikutnya yang didukung dalam urutan sebagai berikut: Character, Format, Word, Line, Paragraph, Page, dan Document.
| Antarmuka Pemrograman Aplikasi (API) | Deskripsi |
|---|---|
antarmuka ITextProvider |
Mengekspos metode, properti, dan atribut yang mendukung TextPattern dalam aplikasi klien (lihat ITextProvider). |
antarmuka ITextRangeProvider |
Mewakili rentang teks dalam penyedia teks (lihat ITextRangeProvider). |
kelas System.Windows.Automation.TextPatternIdentifiers |
Berisi nilai yang digunakan sebagai pengidentifikasi untuk penyedia teks (lihat TextPatternIdentifiers). |
Keamanan
Arsitektur Automasi UI dirancang dengan pertimbangkan keamanan (lihat Gambaran Umum Keamanan Automasi UI). Namun, kelas TextPattern yang dijelaskan dalam gambaran umum ini memerlukan beberapa pertimbangan keamanan tertentu.
Penyedia teks Microsoft UI Automation menyediakan antarmuka baca-saja dan tidak menyediakan kemampuan untuk mengubah teks yang ada dalam kontrol.
Klien Automation UI hanya dapat menggunakan Microsoft UI Automation jika sepenuhnya "tepercaya". Contohnya adalah Logon Desktop yang dilindungi, di mana hanya aplikasi yang diketahui dan tepercaya yang dapat berjalan.
Pengembang penyedia Otomatisasi UI harus menyadari bahwa semua informasi yang mereka pilih untuk diekspos dalam kontrol mereka melalui Microsoft UI Automation pada dasarnya bersifat publik dan sepenuhnya dapat diakses oleh kode lain. Microsoft UI Automation tidak berupaya menentukan kepercayaan klien Automation UI mana pun dan oleh karena itu penyedia Automation UI tidak boleh mengekspos konten yang dilindungi atau informasi tekstual sensitif (seperti bidang kata sandi).
Salah satu perubahan paling signifikan dalam keamanan untuk Windows Vista secara luas disebut sebagai "Input Aman" yang mencakup teknologi seperti Akun Pengguna Dengan Hak Istimewa Terendah (atau Terbatas) (LUA) dan Isolasi Tingkat Hak Istimewa UI (UIPI).
UIPI mencegah satu program mengontrol dan/atau memantau program lain yang lebih "istimewa", mencegah serangan pesan jendela lintas proses yang merusak input pengguna.
LUA menetapkan batasan pada hak istimewa aplikasi yang dijalankan oleh pengguna di grup Administrator. Aplikasi tidak akan selalu memiliki hak istimewa administrator, tetapi sebaliknya akan berjalan dengan hak istimewa paling sedikit yang diperlukan. Sebagai konsekuensinya, mungkin ada beberapa batasan yang diberlakukan dalam skenario LUA. Terutama pemotongan string (termasuk string TextPattern), di mana mungkin perlu membatasi ukuran string yang diambil dari aplikasi tingkat administrator agar tidak memaksakan pengalokasian memori hingga menyebabkan aplikasi nonaktif.
Penampilan
Karena TextPattern bergantung pada panggilan lintas proses untuk sebagian besar fungsionalitasnya, TextPattern tidak menyediakan mekanisme penggunaan cache untuk meningkatkan performa saat memproses konten. Ini tidak seperti pola kontrol lain di Microsoft UI Automation yang dapat diakses menggunakan GetCachedPattern metode atau TryGetCachedPattern .
Salah satu taktik untuk meningkatkan performa adalah dengan memastikan klien UI Automation mencoba mengambil blok teks berukuran sedang menggunakan GetText. Misalnya, panggilan GetText(1) akan menimbulkan hit lintas proses untuk setiap karakter sedangkan satu panggilan GetText(-1) akan menimbulkan satu hit lintas proses, tetapi dapat memiliki latensi tinggi tergantung pada ukuran penyedia teks.
Terminologi TextPattern
Atribut
Karakteristik pemformatan rentang teks (misalnya, IsItalicAttribute atau FontNameAttribute).
Degenerasi Rentang
Rentang degenerasi adalah rentang teks kosong atau nol karakter. Untuk tujuan perlambang kontrol TextPattern, titik penyisipan teks (atau tanda sisipan sistem) dianggap sebagai rentang terdegenerasi. Jika tidak ada teks yang dipilih, GetSelection akan mengembalikan rentang degenerasi pada titik penyisipan teks dan RangeFromPoint akan mengembalikan rentang degenerasi sebagai titik akhir awalnya.
RangeFromChild dan GetVisibleRanges dapat mengembalikan rentang degenerasi ketika penyedia teks tidak dapat menemukan rentang teks apa pun yang cocok dengan kondisi yang diberikan. Rentang degenerasi ini dapat digunakan sebagai titik akhir awal dalam penyedia teks.
FindText dan FindAttribute mengembalikan referensi null (Nothing di Microsoft Visual Basic .NET) untuk menghindari kebingungan dengan rentang yang ditemukan versus rentang degenerasi.
Objek Tersemat
Ada dua jenis objek yang disematkan dalam model teks Automation UI. Mereka terdiri dari elemen konten berbasis teks seperti hyperlink atau tabel, dan elemen kontrol seperti gambar dan tombol. Untuk informasi selengkapnya, lihat Mengakses Objek Tersemat Menggunakan Automasi UI.
Titik Akhir
Titik absolut Start atau End dari rentang teks dalam kontainer teks.
Berikut ini mengilustrasikan sekumpulan titik awal dan akhir.
TextRange
Representasi rentang teks, dengan titik awal dan akhir, dalam kontainer teks termasuk semua atribut dan fungsionalitas terkait.
TextUnit
Unit teks yang telah ditentukan sebelumnya (karakter, kata, baris, atau paragraf) yang digunakan untuk menavigasi melalui segmen logis rentang teks.
Lihat juga
- Pola Kontrol Automasi Antarmuka Pengguna untuk Klien
- Gambaran Umum Pola Kontrol Automasi Antarmuka Pengguna
- Gambaran Umum Pohon Automasi UI
- Gunakan Cache dalam Otomatisasi UI
- Pola Dukungan Kontrol dalam Penyedia Automasi Antarmuka Pengguna
- Pemetaan Pola Kontrol untuk Klien Automasi UI
- Kerangka Kerja Layanan Teks