Sdílet prostřednictvím


Přehled prvku TextPattern automatizace uživatelského rozhraní

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 používat Microsoft model UI Automation k zveřejnění textového obsahu, včetně atributů formátu a stylu, ovládacích prvků textu v model UI Automation podporovaných platformách. Mezi tyto ovládací prvky patří mimo jiné rozhraní Microsoft .NET Framework TextBox a RichTextBox jejich ekvivalenty Win32.

Zveřejnění textového obsahu ovládacího prvku se provádí pomocí TextPattern vzoru ovládacího prvku, který představuje obsah textového kontejneru jako textového streamu. Dále TextPattern vyžaduje podporu TextPatternRange třídy, aby zpřístupnil atributy formátu a stylu. TextPatternRange podporuje TextPattern reprezentaci souvislého nebo více nesouvislého rozsahu textu v textovém kontejneru s kolekcí Start a End koncovými body. TextPatternRange podporuje funkce, jako je výběr, porovnání, načítání a procházení.

Poznámka:

Třídy TextPattern neposkytují prostředky pro vložení nebo úpravu textu. V závislosti na ovládacím prvku to ale může provést model UI Automation ValuePattern nebo přímým vstupem klávesnice. Příklad najdete v ukázce TextPattern Insert Text Sample .

Funkce popsané v tomto přehledu jsou nezbytné pro dodavatele technologií usnadnění a jejich koncové uživatele. Technologie usnadnění můžou používat model UI Automation ke shromažďování úplných informací o formátování textu pro uživatele a poskytování programové navigace a výběru textu podle TextUnit (znak, slovo, řádek nebo odstavec).

model UI Automation TextPattern vs. Architektura textových služeb

Architektura textových služeb (TSF) je jednoduchá a škálovatelná systémová architektura, která umožňuje služby přirozeného jazyka a pokročilé textové zadávání na ploše a v aplikacích. Kromě poskytování rozhraní pro aplikace, aby zpřístupnil jejich textové úložiště, podporuje také metadata pro toto textové úložiště.

TSF byl však navržen pro aplikace, které potřebují vkládat vstup do kontextových scénářů, zatímco TextPattern je řešení jen pro čtení (s omezeným alternativním řešením uvedeným výše) určené k zajištění optimalizovaného přístupu k textovému úložišti pro čtečky obrazovky a zařízení Braillovo písmo.

Stručně řečeno, technologie s podporou přístupnosti, které vyžadují přístup jen pro čtení k textovému úložišti, mohou používat TextPattern, ale budou potřebovat složitější funkce TSF pro vstup s podporou kontextu.

Typy ovládacích prvků

Text

Ovládací prvek Text je základní prvek představující část textu na obrazovce.

Samostatný textový ovládací prvek lze použít jako popisek nebo statický text ve formuláři. Textové ovládací prvky mohou být také obsaženy ve struktuře nebo ListItemTreeItemDataItem.

Poznámka:

Textové ovládací prvky se nemusí zobrazit v zobrazení obsahu stromu model UI Automation (viz přehled stromu model UI Automation). Důvodem je to, že textové ovládací prvky se často zobrazují prostřednictvím vlastnosti Name jiného ovládacího prvku. Například text, který slouží k označení ovládacího prvku Upravit, je vystaven prostřednictvím Vlastnosti Název ovládacího prvku Edit. Vzhledem k tomu, že ovládací prvek Upravit je v zobrazení obsahu model UI Automation stromu, není nutné, aby samotný textový prvek byl v zobrazení model UI Automation strom. Jediný text, který se zobrazí v zobrazení obsahu, je text, který není redundantní informace. Díky tomu můžou libovolná technologie usnadnění rychle filtrovat jenom informace, které potřebují uživatelé.

Upravit

Ovládací prvky pro úpravy umožňují uživateli zobrazit a upravit jeden řádek textu.

Poznámka:

Jeden řádek textu se může zalomit v určitých scénářích rozložení.

Dokument

Ovládací prvky dokumentu umožňují uživateli procházet a získávat informace z více stránek textu.

Klientská rozhraní API pro TextPattern

Typ Popis
Třída System.Windows.Automation.TextPattern Vstupní bod pro textový model Microsoft model UI Automation.

Tato třída obsahuje také dva TextPattern naslouchací TextSelectionChangedEvent procesy událostí a TextChangedEvent.
Třída System.Windows.Automation.Text.TextPatternRange Reprezentace rozsahu textu v textovém kontejneru, který podporuje TextPattern.

model UI Automation klienti by měli být opatrní ohledně aktuální platnosti rozsahu textu vytvořeného pomocí TextPatternRange. Pokud je původní text v ovládacím prvku text zcela nahrazen novým textem, aktuální oblast textu bude neplatná. Rozsah textu však může mít i nadále určitou životaschopnost, pokud se změní pouze část původního textu a ovládací prvek podkladového textu spravuje text "ukazatel" s ukotvením (nebo koncovými body) místo absolutního umístění znaků.

Klienti si mohou poslechnout TextChangedEvent oznámení o jakýchkoli změnách textového obsahu, se kterým pracují.
Třída System.Windows.Automation.AutomationTextAttribute Používá se k identifikaci atributů formátování oblasti textu.

Rozhraní API zprostředkovatele TextPattern

Prvky uživatelského rozhraní nebo ovládací prvky, které podporují TextPattern implementaci ITextProvider rozhraní a ITextRangeProvider rozhraní, buď nativně, nebo prostřednictvím proxy serverů Microsoftu model UI Automation, umožňují kromě poskytování robustních navigačních funkcí také podrobné informace o atributech pro jakýkoli text, který obsahují.

Poskytovatel TextPattern nemusí podporovat všechny atributy textu, pokud ovládací prvek nemá podporu pro všechny konkrétní atributy.

TextPattern Zprostředkovatel musí podporovat GetSelection funkce, Select pokud ovládací prvek podporuje výběr textu nebo umístění kurzoru textu (nebo systémové stříšky) v textové oblasti. Pokud ovládací prvek tuto funkci nepodporuje, nemusí podporovat ani jednu z těchto metod. Ovládací prvek však musí zveřejnit typ výběru textu, který podporuje implementací SupportedTextSelection vlastnosti.

Poskytovatel TextPattern musí vždy podporovat TextUnit konstanty Character a Document také všechny ostatní TextUnit konstanty, které dokáže podporovat.

Poznámka:

Poskytovatel může podporu konkrétního problému TextUnit přeskočit odložením na další největší TextUnit podporované v následujícím pořadí: Character, Format, Word, Line, , ParagraphPage.Document

API Popis
ITextProvider Rozhraní Zveřejňuje metody, vlastnosti a atributy, které podporují TextPattern klientské aplikace (viz ITextProvider).
ITextRangeProvider Rozhraní Představuje rozsah textu ve zprostředkovateli textu (viz ITextRangeProvider).
Třída System.Windows.Automation.TextPatternIdentifiers Obsahuje hodnoty, které se používají jako identifikátory pro zprostředkovatele textu (viz TextPatternIdentifiers).

Zabezpečení

Architektura model UI Automation byla navržena s ohledem na zabezpečení (viz přehled zabezpečení model UI Automation). Třídy TextPattern popsané v tomto přehledu však vyžadují určité specifické aspekty zabezpečení.

  • Microsoft model UI Automation zprostředkovatelé textu poskytují rozhraní jen pro čtení a neposkytují možnost měnit existující text v ovládacím prvku.

  • model UI Automation klienti můžou používat microsoft model UI Automation pouze v případě, že jsou plně důvěryhodní. Příkladem by byla chráněná přihlašovací plocha, kde se můžou spouštět jenom známé a důvěryhodné aplikace.

  • Vývojáři model UI Automation poskytovatelů by měli vědět, že všechny informace, které se rozhodnou zveřejnit ve svých ovládacích prvcích prostřednictvím microsoft model UI Automation, jsou v podstatě veřejné a plně přístupné jiným kódem. Společnost Microsoft model UI Automation se nepokusí určit důvěryhodnost jakéhokoli klienta model UI Automation, a proto by poskytovatel model UI Automation neměl zveřejnit chráněný obsah ani citlivé textové informace (například pole hesel).

  • Jedním z nejvýznamnějších změn zabezpečení systému Windows Vista se obecně označuje jako "Zabezpečený vstup", který zahrnuje technologie, jako jsou uživatelské účty s nejnižšími oprávněními (LUA) a izolace na úrovni oprávnění uživatelského rozhraní (UIPI).

    • UIPI brání jednomu programu v řízení nebo monitorování jiného "privilegovaného" programu, což brání útokům na zprávy mezi procesy, které falšují uživatelský vstup.

    • LUA nastavuje omezení oprávnění aplikací, která uživatelé spouštějí ve skupině Správa istrators. Aplikace nemusí mít nutně oprávnění správce, ale budou se spouštět s nejnižšími potřebnými oprávněními. V důsledku toho mohou existovat určitá omezení vynucená ve scénářích LUA. Zejména zkrácení řetězce (včetně řetězců TextPattern), kde může být nutné omezit velikost řetězců načtených z aplikací na úrovni správce, aby nemuseli přidělovat paměť k bodu zakázání aplikace.

Výkon

Vzhledem k tomu, že TextPattern spoléhá na volání mezi procesy pro většinu jeho funkcí, neposkytuje mechanismus ukládání do mezipaměti ke zlepšení výkonu při zpracování obsahu. Je to na rozdíl od jiných řídicích vzorů v Microsoftu model UI Automation, ke kterým je možné přistupovat pomocí GetCachedPattern těchto metodTryGetCachedPattern.

Jednou z taktik pro zlepšení výkonu je zajistit, aby se klienti model UI Automation pokusili načíst středně velké bloky textu pomocí GetText. Například volání GetText(1) způsobí křížové přístupy pro každý znak, zatímco u jednoho volání GetText(-1) dojde k jednomu dosažení křížového procesu, ale může mít vysokou latenci v závislosti na velikosti zprostředkovatele textu.

Terminologie TextPattern

Atribut
Formátování charakteristické pro oblast textu (například IsItalicAttributeFontNameAttribute)

Degenerate Range
Degenerovaný rozsah je prázdný nebo nulový textový rozsah. Pro účely vzoru ovládacího prvku TextPattern se kurzor textu (nebo stříška systému) považuje za degenerovaná oblast. Pokud není vybraný žádný text, GetSelection vrátí se degenerovaná oblast v místě vložení textu a RangeFromPoint jako počáteční koncový bod by vrátila degenerovaná oblast. RangeFromChild a GetVisibleRanges může vrátit degenerovat oblasti, pokud zprostředkovatel textu nemůže najít žádné oblasti textu, které odpovídají dané podmínce. Tento degenerační rozsah lze použít jako počáteční koncový bod v rámci zprostředkovatele textu. FindText a FindAttribute vrátí nulový odkaz (Nothing v jazyce Microsoft Visual Basic .NET), aby nedocházelo k nejasnostem se zjištěným rozsahem a degeneračním rozsahem.

Vložený objekt
V textovém modelu model UI Automation existují dva typy vložených objektů. Skládají se z textových prvků obsahu, jako jsou hypertextové odkazy nebo tabulky, a ovládací prvky, jako jsou obrázky a tlačítka. Podrobnější informace naleznete v tématu Access Embedded Objects Using model UI Automation.

Endpoint
Absolutní Start nebo End bod oblasti textu v textovém kontejneru.

TextPatternRangeEndpoints (začátek a konec). Následující příklad ukazuje sadu počátečních a koncových bodů.

TextRange
Reprezentace rozsahu textu se počátečními a koncovými body v textovém kontejneru, včetně všech přidružených atributů a funkcí.

TextUnit
Předdefinovaná jednotka textu (znak, slovo, řádek nebo odstavec) použitá k procházení logických segmentů oblasti textu.

Viz také