Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka:
Tato dokumentace je určená pro vývojáře rozhraní .NET Framework, kteří chtějí používat spravované třídy automatizace uživatelského rozhraní definované v oboru názvů System.Windows.Automation. Nejnovější informace o automatizaci uživatelského rozhraní najdete v tématu rozhraní API služby Windows Automation: Automatizace uživatelského rozhraní.
Tento přehled popisuje, jak Microsoft UI Automation zveřejňuje vložené objekty nebo podřízené prvky v textovém dokumentu nebo kontejneru.
V automatizaci uživatelského rozhraní je vložený objekt jakýkoli prvek, který má ne-textové hranice; Například obrázek, hypertextový odkaz, tabulka nebo typ dokumentu, jako je tabulka aplikace Microsoft Excel nebo soubor Microsoft Windows Media. To se liší od standardní definice, kde je prvek vytvořen v jedné aplikaci a vložený nebo propojený uvnitř jiné. Zda lze objekt upravit v rámci původní aplikace, je irelevantní v kontextu automatizace uživatelského rozhraní.
Vložené objekty a strom automatizace uživatelského rozhraní
Vložené objekty jsou považovány za jednotlivé prvky v zobrazení ovládacího prvku stromu automatizace uživatelského rozhraní. Jsou vystavené jako podřízené položky textového kontejneru, aby k nim bylo možné přistupovat pomocí stejného modelu jako jiné ovládací prvky ve službě Automatizace uživatelského rozhraní.
Příklad textového kontejneru s vloženými objekty Table, Image a Hyperlink
Příklad zobrazení obsahu pro část předchozího textového kontejneru
Zveřejnění vložených objektů pomocí TextPattern a TextPatternRange
Používá se ve spojení, řídicí vzor třídy TextPattern a třída TextPatternRange zpřístupňují metody a vlastnosti, které usnadňují navigaci a dotazování vložených objektů.
Textový obsah (nebo vnitřní text) textového kontejneru a vloženého objektu, jako je hypertextový odkaz nebo buňka tabulky, je vystaven jako jediný souvislý textový proud v zobrazení ovládacího prvku i zobrazení obsahu stromu Automatizace uživatelského rozhraní; hranice objektů jsou ignorovány. Pokud klient automatizace uživatelského rozhraní načítá text pro účely recitování, interpretace nebo analýzy nějakým způsobem, je třeba oblast textu zkontrolovat ve zvláštních případech, jako je například tabulka s textovým obsahem nebo jinými vloženými objekty. Toho lze dosáhnout voláním GetChildren pro získání AutomationElement pro každý vložený objekt a voláním RangeFromChild získat rozsah textu pro každý prvek. To se provádí rekurzivně, dokud nebude načten veškerý textový obsah.
Příklad textového datového proudu s vloženými objekty a rozsahy jejich rozsahů
Pokud je nutné procházet obsah oblasti textu, jsou na pozadí zapojena řada kroků, aby Move se metoda úspěšně spustila.
Rozsah textu je normalizován; to znamená, že je sbalen do degenerovaného rozsahu v Start koncovém bodě, což činí End koncový bod nadbytečným. Tento krok je nezbytný k odebrání nejednoznačnosti v situacích, kdy rozsah textu přesahuje TextUnit hranice: například {
{The URL https://www.microsoft.com is embedded in text
a "}" jsou koncové body textového rozsahu.Výsledný rozsah je posunut zpět v DocumentRange na začátek požadované TextUnit hranice.
Rozsah je posunut dopředu nebo dozadu DocumentRange o požadovaný počet TextUnit hranic.
Rozsah se pak rozšíří ze stavu degenerovaného rozsahu přesunutím koncového End bodu o jednu požadovanou TextUnit hranici.
Běžné scénáře
Následující části obsahují příklady nejběžnějších scénářů, které zahrnují vložené objekty.
Legenda pro uvedené příklady:
{ = Start
} = End
Hypertextový odkaz
Příklad 1 – oblast textu, která obsahuje vložený textový hypertextový odkaz
{The URL https://www.microsoft.com is embedded in text}.
Volána metoda | Výsledek |
---|---|
GetText | Vrátí řetězec The URL https://www.microsoft.com is embedded in text . |
GetEnclosingElement | Vrátí nejvnitřnější AutomationElement, která obklopí oblast textu; v tomto případě AutomationElement představuje samotného zprostředkovatele textu. |
GetChildren | Vrátí AutomationElement, který představuje ovládací prvek hypertextového odkazu. |
RangeFromChild where AutomationElement je objekt vrácen předchozí GetChildren metodou. |
Vrátí oblast, kterou https://www.microsoft.com představuje. |
Příklad 2 – oblast textu, která částečně pokrývá vložený textový hypertextový odkaz
Adresa URL https://{[www]}
je vložena do textu.
Volána metoda | Výsledek |
---|---|
GetText | Vrátí řetězec "www". |
GetEnclosingElement | Vrátí nejvnitřnější prvek AutomationElement, který obklopuje textový rozsah; v tomto případě ovládací prvek hypertextového odkazu. |
GetChildren | Vrátí null , protože rozsah textu nepřekryje celý řetězec adresy URL. |
Příklad 3 – oblast textu, která částečně pokrývá obsah textového kontejneru. Textový kontejner obsahuje vložený textový hypertextový odkaz, který není součástí oblasti textu.
{The URL} [https://www.microsoft.com](https://www.microsoft.com) is embedded in text.
Volána metoda | Výsledek |
---|---|
GetText | Vrátí řetězec "URL". |
GetEnclosingElement | Vrátí nejvnitřnější AutomationElement, která obklopí oblast textu; v tomto případě AutomationElement představuje samotného zprostředkovatele textu. |
Move s parametry (TextUnit.Word, 1). | Přesune rozsah textu na http, protože text hypertextového odkazu se skládá z jednotlivých slov. V tomto případě hypertextový odkaz není považován za jeden objekt. Adresa URL {[http]} je vložena do textu. |
Obrázek
Příklad 1 – oblast textu, která obsahuje vložený obrázek
{Příklad je vložen do textu}.
Volána metoda | Výsledek |
---|---|
GetText | Vrátí řetězec "The is embedded in text". U jakéhokoli alternativního textu přidruženého k obrázku nelze očekávat zahrnutí do textového streamu. |
GetEnclosingElement | Vrátí nejvnitřnější AutomationElement, která obklopí oblast textu; v tomto případě AutomationElement představuje samotného zprostředkovatele textu. |
GetChildren | Vrátí objekt AutomationElement ovládacího prvku pro obrázky. |
RangeFromChild where AutomationElement je objekt vrácen předchozí GetChildren metodou. | Vrátí degenerovanou oblast, která představuje "![]() |
Příklad 2 – oblast textu, která částečně pokrývá obsah textového kontejneru. Textový kontejner obsahuje vložený obrázek, který není součástí oblasti textu.
{Obrázek} je vložený do textu.
Volána metoda | Výsledek |
---|---|
GetText | Vrátí řetězec "Obrázek". |
GetEnclosingElement | Vrátí nejvnitřnější AutomationElement, která obklopí oblast textu; v tomto případě AutomationElement představuje samotného zprostředkovatele textu. |
Move s parametry (TextUnit.Word, 1). | Přesune rozsah textu na "je". Vzhledem k tomu, že textově vložené objekty jsou považovány za součást textového streamu, nemá obrázek v tomto příkladu vliv na přesunutí ani jeho návratovou hodnotu (v tomto případě 1). |
Tabulka
Tabulka použitá pro příklady
Buňka s obrázkem | Buňka s textem |
---|---|
![]() |
X |
![]() |
Й |
![]() Obrázek pro Z |
Z |
Příklad 1 – Získání textového kontejneru z obsahu buňky
Metoda volána | Výsledek |
---|---|
GetItem s parametry (0,0) | Vrátí reprezentaci AutomationElement obsahu buňky tabulky. V tomto případě je element textovým ovládacím prvkem. |
RangeFromChild where AutomationElement je objekt vrácen předchozí GetItem metodou. |
Vrátí oblast, která zahrnuje obrázek ![]() |
GetEnclosingElement pro objekt vrácený předchozí RangeFromChild metodou. |
Vrátí reprezentaci AutomationElement buňky tabulky. V tomto případě je element textovým ovládacím prvkem, který podporuje TableItemPattern. |
GetEnclosingElement pro objekt vrácený předchozí GetEnclosingElement metodou. |
Vrátí reprezentaci AutomationElement tabulky. |
GetEnclosingElement pro objekt vrácený předchozí GetEnclosingElement metodou. |
AutomationElement Vrátí hodnotu, která představuje samotného zprostředkovatele textu. |
Příklad 2 – Získání textového obsahu buňky
Metoda volána | Výsledek |
---|---|
GetItem s parametry (1,1). | Vrátí reprezentaci AutomationElement obsahu buňky tabulky. V tomto případě je element textovým ovládacím prvkem. |
RangeFromChild where AutomationElement je objekt vrácen předchozí GetItem metodou. |
Vrátí "Y". |