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 bagaimana Microsoft UI Automation mengekspos objek yang disematkan, atau elemen turunan, dalam dokumen teks atau kontainer.
Dalam Automasi UI, objek yang disematkan adalah elemen apa pun yang memiliki batas non-tekstual; misalnya, gambar, hyperlink, tabel, atau jenis dokumen seperti lembar bentang Microsoft Excel atau file Microsoft Windows Media. Ini berbeda dari definisi standar, di mana elemen dibuat dalam satu aplikasi dan disematkan, atau ditautkan, dalam aplikasi lain. Apakah objek dapat diedit dalam aplikasi aslinya tidak relevan dalam konteks Automasi UI.
Objek Tertanam dan Pohon UI Automation
Objek yang disematkan diperlakukan sebagai elemen individual dalam tampilan kontrol pohon Automation UI. Kontainer tersebut diekspos sebagai turunan dari kontainer teks sehingga dapat diakses melalui model yang sama dengan kontrol lain dalam Automasi UI.
Contoh Kontainer Teks dengan Tabel, Gambar, dan Objek Tersemat Hyperlink
Contoh Tampilan Konten untuk Sebagian Kontainer Teks Sebelumnya
Mengekspos Objek Yang Disematkan Menggunakan TextPattern dan TextPatternRange
Digunakan bersamaan, kelas pola kontrol TextPattern dan kelas TextPatternRange menyediakan metode dan properti yang memfasilitasi navigasi dan kueri objek yang disematkan.
Konten tekstual (atau teks dalam) kontainer teks dan objek yang disematkan, seperti hyperlink atau sel tabel, diekspos sebagai aliran teks berkelanjutan tunggal dalam tampilan kontrol dan tampilan konten pohon Automation UI; batas objek diabaikan. Jika klien Otomasi UI mengambil teks untuk tujuan membacakan, menafsirkan, atau menganalisis dengan cara tertentu, rentang teks harus diperiksa untuk kasus khusus, seperti tabel yang berisi teks atau objek yang diintegrasikan lainnya. Ini dapat dicapai dengan memanggil GetChildren untuk mendapatkan AutomationElement untuk setiap objek yang disematkan dan kemudian memanggil RangeFromChild untuk mendapatkan rentang teks untuk setiap elemen. Ini dilakukan secara rekursif sampai semua konten tekstual diambil.
Contoh aliran teks dengan objek yang disematkan dan cakupannya
Apabila diperlukan untuk melintasi konten rentang teks, serangkaian langkah diperlukan di belakang layar agar metode Move dapat dijalankan dengan sukses.
Rentang teks dinormalisasi; artinya, rentang teks diciutkan ke rentang degenerasi di Start titik akhir, yang membuat End titik akhir berlebihan. Langkah ini diperlukan untuk menghapus ambiguitas dalam situasi di mana rentang teks mencakup TextUnit batas: misalnya,
{The URL https://www.microsoft.com is embedded in textdi mana "{" dan "}" adalah titik akhir rentang teks.Rentang yang dihasilkan dipindahkan mundur di DocumentRange hingga awal batas yang diminta TextUnit.
Rentang dipindahkan ke depan atau mundur dalam DocumentRange oleh jumlah batas-batas TextUnit yang diminta.
Rentang kemudian diperluas dari keadaan rentang yang terdegenerasi dengan memindahkan titik akhir End ke satu batas TextUnit yang diminta.
Contoh bagaimana rentang teks disesuaikan untuk Move() dan ExpandToEnclosingUnit()
Skenario Umum
Bagian berikut menyajikan contoh skenario paling umum yang melibatkan objek yang disematkan.
Legenda untuk contoh yang ditampilkan:
{ = Start
} = End
Hyperlink
Contoh 1 - Rentang teks yang berisi hyperlink yang disematkan
{The URL https://www.microsoft.com is embedded in text}.
| Metode yang Dipanggil | Hasil |
|---|---|
| GetText | Mengembalikan string The URL https://www.microsoft.com is embedded in text. |
| GetEnclosingElement | Mengembalikan AutomationElement terdalam yang mengapit rentang teks; dalam hal ini, AutomationElement yang merupakan penyedia teks itu sendiri. |
| GetChildren | Mengembalikan AutomationElement yang mewakili kontrol hyperlink. |
RangeFromChild di mana AutomationElement adalah objek yang dikembalikan oleh metode sebelumnya GetChildren . |
Mengembalikan rentang yang mewakili https://www.microsoft.com. |
Contoh 2 - Rentang teks yang sebagian mencakup hyperlink teks yang disematkan
URL https://{[www]} disematkan dalam teks.
| Metode yang Dipanggil | Hasil |
|---|---|
| GetText | Mengembalikan string "www". |
| GetEnclosingElement | Mengembalikan AutomationElement terdalam yang mengapit rentang teks; dalam hal ini, pengendali hyperlink. |
| GetChildren | Mengembalikan null karena rentang teks tidak mencakup seluruh string URL. |
Contoh 3 - Rentang teks yang sebagian mencakup konten kontainer teks. Kontainer teks memiliki hyperlink teks yang disematkan yang bukan bagian dari rentang teks.
{The URL} [https://www.microsoft.com](https://www.microsoft.com) is embedded in text.
| Metode yang Dipanggil | Hasil |
|---|---|
| GetText | Mengembalikan string "The URL". |
| GetEnclosingElement | Mengembalikan AutomationElement terdalam yang mengapit rentang teks; dalam hal ini, AutomationElement yang merupakan penyedia teks itu sendiri. |
| Move dengan parameter dari (TextUnit.Word, 1). | Memindahkan rentang teks ke "http" karena teks hyperlink terdiri dari kata-kata individual. Dalam hal ini, hyperlink tidak diperlakukan sebagai objek tunggal. URL {[http]} disematkan dalam teks. |
Gambar
Contoh 1 - Rentang teks yang berisi gambar yang disematkan
{
Gambar tersebut disematkan dalam teks}.
| Metode yang Dipanggil | Hasil |
|---|---|
| GetText | Mengembalikan string "The terkandung di dalam teks". Teks ALT apa pun yang terkait dengan gambar tidak dapat diharapkan disertakan dalam aliran teks. |
| GetEnclosingElement | Mengembalikan AutomationElement terdalam yang mengapit rentang teks; dalam hal ini, AutomationElement yang merupakan penyedia teks itu sendiri. |
| GetChildren | Mengembalikan AutomationElement yang mewakili pengontrol gambar. |
| RangeFromChild di mana AutomationElement adalah objek yang dikembalikan oleh metode sebelumnya GetChildren . | Mengembalikan rentang degenerasi yang mewakili " ". |
Contoh 2 - Rentang teks yang sebagian mencakup konten kontainer teks. Kontainer teks memiliki gambar yang disematkan yang bukan bagian dari rentang teks.
{Gambar}
disematkan dalam teks.
| Metode yang Dipanggil | Hasil |
|---|---|
| GetText | Mengembalikan string "Gambar tersebut". |
| GetEnclosingElement | Mengembalikan AutomationElement terdalam yang mengapit rentang teks; dalam hal ini, AutomationElement yang merupakan penyedia teks itu sendiri. |
| Move dengan parameter dari (TextUnit.Word, 1). | Memindahkan rentang teks ke "is ". Karena hanya objek tertanam berbasis teks yang dianggap sebagai bagian dari aliran teks, gambar dalam contoh ini tidak memengaruhi fungsi Pindahkan atau nilai pengembaliannya (1 dalam kasus ini). |
Tabel
Tabel yang digunakan untuk contoh
| Sel dengan Gambar | Sel dengan Teks |
|---|---|
|
X |
|
Ya |
Gambar untuk Z |
Z |
Contoh 1 - Dapatkan kontainer teks dari konten sel.
| Metode Yang Dipanggil | Hasil |
|---|---|
| GetItem dengan parameter (0,0) | Mengembalikan AutomationElement yang mewakili konten sel tabel; dalam hal ini, elemen adalah kontrol teks. |
RangeFromChild di mana AutomationElement adalah objek yang dikembalikan oleh metode sebelumnya GetItem . |
Mengembalikan rentang yang mencakup gambar . |
GetEnclosingElement untuk objek yang dikembalikan oleh metode sebelumnya RangeFromChild . |
Mengembalikan AutomationElement yang mewakili sel tabel; dalam hal ini, elemen adalah kontrol teks yang mendukung TableItemPattern. |
GetEnclosingElement untuk objek yang dikembalikan oleh metode sebelumnya GetEnclosingElement . |
Mengembalikan AutomationElement yang mewakili tabel. |
GetEnclosingElement untuk objek yang dikembalikan oleh metode sebelumnya GetEnclosingElement . |
Mengembalikan AutomationElement yang mewakili penyedia teks itu sendiri. |
Contoh 2 - Ambil konten teks dari sel.
| Metode Yang Dipanggil | Hasil |
|---|---|
| GetItem dengan parameter (1,1). | Mengembalikan AutomationElement yang mewakili konten sel tabel; dalam hal ini, elemen adalah kontrol teks. |
RangeFromChild di mana AutomationElement adalah objek yang dikembalikan oleh metode sebelumnya GetItem . |
Mengembalikan "Y". |