TextPattern a vložené objekty – přehled
Poznámka:
Tato dokumentace je určená pro vývojáře rozhraní .NET Framework, kteří chtějí používat spravované třídy model UI Automation definované v System.Windows.Automation oboru názvů. Nejnovější informace o model UI Automation najdete v tématu Rozhraní API služby Windows Automation: model UI Automation.
Tento přehled popisuje, jak Microsoft model UI Automation zpřístupňuje vložené objekty nebo podřízené prvky v textovém dokumentu nebo kontejneru.
V model UI Automation vložený objekt je jakýkoli prvek, který má netextové hranice, například obrázek, hypertextový odkaz, tabulku 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 model UI Automation.
Vložené objekty a strom model UI Automation
Vložené objekty jsou považovány za jednotlivé prvky v ovládacím zobrazení model UI Automation stromu. 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 v model UI Automation.
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í, TextPattern řídicí vzor třídy a TextPatternRange třídy 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 model UI Automation stromu; hranice objektů jsou ignorovány. Pokud klient model UI Automation načítá text pro účely recitování, interpretace nebo analýzy nějakým způsobem, je třeba zkontrolovat rozsah textu ve zvláštních případech, jako je 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 oblast textu je sbalená do degenerovaného rozsahu v Start koncovém bodě, což způsobí End , že koncový bod je nadbytečný. 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 se přesune zpět na DocumentRange začátek požadované TextUnit hranice.
Rozsah se posune dopředu nebo dozadu DocumentRange požadovaným TextUnit počtem hranic.
Rozsah se pak rozšíří ze stavu degenerovaného rozsahu přesunutím koncového End bodu o jednu požadovanou TextUnit hranici.
Příklady úprav rozsahu textu pro Move() a ExpandToEnclosingUnit()
Obvyklé situace
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í nejvíce vnitřní část AutomationElement , která uzavře oblast textu. V tomto případě AutomationElement představuje samotného zprostředkovatele textu. |
GetChildren | Vrátí reprezentaci AutomationElement ovládacího prvku hypertextového odkazu. |
RangeFromChild where AutomationElement je objekt vrácen předchozí GetChildren metodou. |
Vrátí oblast, která představuje https://www.microsoft.com . |
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í nejvíce vnitřní část AutomationElement , která uzavře oblast textu; 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 "The URL". |
GetEnclosingElement | Vrátí nejvíce vnitřní část AutomationElement , která uzavře 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. |
Image
Příklad 1 – oblast textu, která obsahuje vložený obrázek
{Obrázek 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í nejvíce vnitřní část AutomationElement , která uzavře oblast textu. V tomto případě AutomationElement představuje samotného zprostředkovatele textu. |
GetChildren | Vrátí reprezentaci AutomationElement ovládacího prvku obrázek. |
RangeFromChild where AutomationElement je objekt vrácen předchozí GetChildren metodou. | Vrátí degenerovat 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.
{The image} je vložen do textu.
Volána metoda | Výsledek |
---|---|
GetText | Vrátí řetězec "The image". |
GetEnclosingElement | Vrátí nejvíce vnitřní část AutomationElement , která uzavře 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 "is". 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). |
Table
Tabulka použitá pro příklady
Buňka s obrázkem | Buňka s textem |
---|---|
X | |
Y | |
Obrázek pro Z |
Z |
Příklad 1 – Získání textového kontejneru z obsahu buňky
Volána metoda | 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
Volána metoda | 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". |
Viz také
- TextPattern
- TextPatternRange
- ITextProvider
- ITextRangeProvider
- Přístup k vloženým objektům s použitím automatizace uživatelského rozhraní
- Vystavení obsahu tabulky s použitím automatizace uživatelského rozhraní
- Procházení textu s použitím automatizace uživatelského rozhraní
- TextPattern – ukázka hledání a výběru