Megosztás a következőn keresztül:


UI Automation TextPattern – áttekintés

Megjegyzés:

Ez a dokumentáció azoknak a .NET-keretrendszer-fejlesztőknek készült, akik a System.Windows.Automation névtérben definiált felügyelt felhasználói felületi Automation-osztályokat szeretnék használni. A felhasználói felület automatizálásával kapcsolatos legfrissebb információkért lásd Windows Automation API: UI Automation.

Ez az áttekintés azt ismerteti, hogyan teheti elérhetővé a Microsoft UI Automation használatával a szövegvezérlők szöveges tartalmát, beleértve a formátum- és stílusattribútumokat a felhasználói felület Automation által támogatott platformjaiban. Ezek a vezérlők magukban foglalják a Microsoft .NET-keretrendszert TextBox és RichTextBox a Win32-ekvivalenseket, de nem kizárólagosan.

A vezérlő szöveges tartalmának felfedése a vezérlőminta használatával TextPattern történik, amely a szövegtároló tartalmát szöveges adatfolyamként jelöli. A formátum- TextPattern és stílusattribútumok elérhetővé megvalósításához viszont az TextPatternRange osztály támogatására van szükség. TextPatternRange úgy támogatja a TextPattern-et, hogy az egybefüggő vagy több, különálló szövegtartományt egy szövegtárolóban a végpontok gyűjteményével Start és End jelöl. TextPatternRange támogatja az olyan funkciókat, mint a kiválasztás, az összehasonlítás, a beolvasás és a bejárás.

Megjegyzés:

Az TextPattern osztályok nem biztosítanak módot a szöveg beszúrására vagy módosítására. A vezérlőtől függően azonban ezt a felhasználói felület automatizálása ValuePattern vagy a közvetlen billentyűzet bemenete hajthatja végre. Példaként tekintse meg a TextPattern Szövegminta beszúrása című témakört.

Az ebben az áttekintésben ismertetett funkciók létfontosságúak a kisegítő technológiák gyártói és végfelhasználói számára. A kisegítő technológiák a felhasználói felület automatizálásával teljes szövegformázási információkat gyűjthetnek a felhasználó számára, és programozott navigációt és szöveg (karakter, szó, sor vagy bekezdés) szerinti TextUnit kijelölést biztosítanak.

UI Automation TextPattern és Text Services-keretrendszer

A Text Services Framework (TSF) egy egyszerű és méretezhető rendszerkeret, amely természetes nyelvi szolgáltatásokat és fejlett szövegbevitelt tesz lehetővé az asztalon és az alkalmazásokon belül. Amellett, hogy felületeket biztosít az alkalmazások számára a szövegtárolók elérhetővé céljából, támogatja az adott szövegtár metaadatait is.

A TSF-et azonban olyan alkalmazásokhoz tervezték, amelyek bemenetet kell injektáljanak a környezettudatos forgatókönyvekbe, míg TextPattern egy írásvédett megoldás (a fentebb említett korlátozott kerülő megoldással), amely optimalizált hozzáférést biztosít a képernyőolvasók és Braille-eszközök szövegtárolóihoz.

Összefoglalva, az olvasásra korlátozott hozzáférést igénylő akadálymentes technológiák használhatják a TextPattern, de a kontextusfüggő bevitelhez a TSF összetettebb funkcióira lesz szükség.

Vezérlőtípusok

Szöveg

A Szöveg vezérlőelem a képernyő egy szövegrészét jelképező alapelem.

Az önálló szövegvezérlők címkeként vagy statikus szövegként is használhatók egy űrlapon. A szövegvezérlők a ListItem, TreeItem vagy DataItem struktúrában is elhelyezhetők.

Megjegyzés:

Előfordulhat, hogy a szövegvezérlők nem jelennek meg a felhasználói felület automatizálási fa tartalomnézetében (lásd : felhasználói felületi automatizálási fa áttekintése). Ennek az az oka, hogy a szövegvezérlők gyakran egy másik vezérlőelem Név tulajdonságán keresztül jelennek meg. A Szerkesztés vezérlőelem címkézéséhez használt szöveg például a Szerkesztés vezérlőelem Név tulajdonságán keresztül jelenik meg. Mivel a Szerkesztés vezérlő a felhasználói felület automation fa tartalomnézetében található, nem szükséges, hogy maga a szövegelem szerepeljen a felhasználói felület Automation-fájának ezen nézetében. A tartalomnézetben csak olyan szöveg jelenik meg, amely nem redundáns információ. Ez lehetővé teszi, hogy minden kisegítő technológia gyorsan szűrjön csak a felhasználók számára szükséges információkra.

Szerkeszt

A szerkesztési vezérlők lehetővé teszik, hogy a felhasználó egyetlen szövegsort tekinthessen meg és szerkesszen.

Megjegyzés:

Az egysoros szöveg bizonyos elrendezési forgatókönyvekben törhet.

Dokumentum

A dokumentumvezérlők lehetővé teszik, hogy a felhasználó több oldalnyi szövegből navigáljon és információt szerezzen be.

TextPattern ügyfél API-k

típus Leírás
System.Windows.Automation.TextPattern osztály A Microsoft UI Automation szövegmodell belépési pontja.

Ez az osztály a két TextPattern eseményfigyelőt, TextSelectionChangedEvent és TextChangedEvent is tartalmazza.
System.Windows.Automation.Text.TextPatternRange osztály A szövegtartomány ábrázolása egy olyan szövegtárolóban, amely támogatja a TextPattern.

A UI Automation-ügyfeleknek körültekintőnek kell lenniük a TextPatternRange segítségével létrehozott szövegtartomány aktuális érvényességét illetően. Ha a szövegvezérlő eredeti szövegét teljesen új szöveg váltja fel, az aktuális szövegtartomány érvénytelenné válik. A szövegtartomány azonban továbbra is életképességgel rendelkezhet, ha az eredeti szövegnek csak egy része módosul, és a mögöttes szövegvezérlő a szöveg "mutatóját" horgonyokkal (vagy végpontokkal) kezeli, nem pedig abszolút karakterpozícióval.

Az ügyfelek figyelhetik a változásokat jelző értesítéseket azon szöveges tartalmak esetében, amelyeken dolgoznak.
System.Windows.Automation.AutomationTextAttribute osztály Egy szövegtartomány formázási attribútumainak azonosítására szolgál.

TextPattern Szolgáltató API-k

Azok a TextPatternITextProvider felhasználói felületi elemek vagy vezérlők, amelyek natív módon vagy a Microsoft UI Automation-proxykon keresztül támogatják ITextRangeProvider az interfészeket, részletes attribútuminformációkat képesek kiosztani az általuk tartalmazott szövegekről, valamint robusztus navigációs képességeket biztosítanak.

A TextPattern szolgáltatónak nem kell minden szöveges attribútumot támogatnia, ha a vezérlő nem támogatja az adott attribútumokat.

A TextPattern szolgáltatónak támogatnia kell a GetSelection és Select függvényeket, ha a vezérlő támogatja a szövegkijelölést vagy a szövegkurzor (vagy a rendszerkurzor) elhelyezését a szövegterületen. Ha a vezérlő nem támogatja ezt a funkciót, akkor egyik metódust sem kell támogatnia. A vezérlőelemnek azonban láthatóvá kell tennie a támogatott szövegkijelölés típusát a SupportedTextSelection tulajdonság implementálásával.

A TextPattern szolgáltatónak mindig támogatnia kell az TextUnit állandókat Character és Document minden más TextUnit állandót, amelyet képes támogatni.

Megjegyzés:

A szolgáltató kihagyhatja egy adott TextUnit támogatását, ha az alábbi sorrendben a következő legnagyobb TextUnit támogatottra halasztja: Character, Format, Word, Line, Paragraph, Page és Document.

Alkalmazásprogramozási interfész (API) Leírás
ITextProvider felület Az ügyfélalkalmazásokban támogatott TextPattern metódusokat, tulajdonságokat és attribútumokat teszi elérhetővé (lásd ITextProvider: ).
ITextRangeProvider felület Szövegtartományt jelöl egy szövegszolgáltatóban (lásd ITextRangeProvider: ).
System.Windows.Automation.TextPatternIdentifiers osztály Olyan értékeket tartalmaz, amelyeket a szövegszolgáltatók azonosítóként használnak (lásd TextPatternIdentifiers: ).

Biztonság

A felhasználói felület automatizálási architektúráját a biztonság szem előtt tartásával tervezték (lásd a felhasználói felület automatizálásának biztonsági áttekintését). Az ebben az áttekintésben ismertetett TextPattern-osztályok azonban bizonyos biztonsági szempontokat igényelnek.

  • A Microsoft UI Automation szövegszolgáltatók írásvédett felületeket biztosítanak, és nem teszik lehetővé a meglévő szöveg módosítását egy vezérlőben.

  • A felhasználói felületi automatizálási ügyfelek csak akkor használhatják a Microsoft UI Automationt, ha teljes mértékben "megbízhatóak". Ilyen például a védett Logon Desktop, ahol csak ismert és megbízható alkalmazások futtathatók.

  • A felhasználói felületi automatizálási szolgáltatók fejlesztőinek tisztában kell lenniük azzal, hogy minden olyan információ, amelyet a Vezérlőikben a Microsoft UI Automationen keresztül tesznek elérhetővé, lényegében nyilvánosak és más kóddal teljes mértékben elérhetők. A Microsoft UI Automation nem törekszik arra, hogy meghatározza a felhasználói felület Automation-ügyfél megbízhatóságát, ezért a felhasználói felület automation szolgáltatójának nem szabad védett tartalmakat vagy bizalmas szöveges információkat (például jelszómezőket) közzétennie.

  • A Windows Vista biztonságának egyik legfontosabb változását széles körben "Biztonságos bemenetnek" nevezik, amely olyan technológiákat foglal magában, mint a legkevésbé kiemelt (vagy korlátozott) felhasználói fiókok (LUA) és a felhasználói jogosultsági szint elkülönítése (UIPI).

    • Az UIPI megakadályozza, hogy az egyik program egy másik "privileged" programot vezérelje és/vagy monitorozza, megakadályozva ezzel a felhasználói bemenetet hamisítást okozó, folyamatközi ablaküzenet-támadásokat.

    • A LUA korlátozza a Rendszergazdák csoport felhasználói által futtatott alkalmazások jogosultságait. Az alkalmazások nem feltétlenül rendelkeznek rendszergazdai jogosultságokkal, hanem a legkevésbé szükséges jogosultságokkal fognak futni. Ennek következtében előfordulhat, hogy a LUA-forgatókönyvekben bizonyos korlátozások lépnek érvénybe. Különösen a sztringek csonkolása (beleértve a TextPattern-sztringeket), ahol előfordulhat, hogy szükség van a rendszergazdai szintű alkalmazásokból lekért sztringek méretének korlátozására, hogy ne kényszerítsék ki a memóriakiosztást, ami az alkalmazás letiltásához vezethet.

Teljesítmény

Mivel a TextPattern a legtöbb funkciójának folyamatközi hívásaira támaszkodik, nem biztosít gyorsítótárazási mechanizmust a tartalom feldolgozása során a teljesítmény javítására. Ez ellentétben áll a Microsoft felhasználói felületi automatizálás más olyan szabályozási mintáival, amelyek a GetCachedPatternTryGetCachedPattern vagy metódusok használatával érhetők el.

A teljesítmény javításának egyik taktikája, hogy a felhasználói felület automatizálási ügyfelei megkísérlik lekérni a közepes méretű szövegblokkokat a(z) GetText használatával. A GetText(1) hívások például folyamatközi találatokat eredményeznek minden karakternél, míg egy GetText(-1) hívás egy folyamatközi találatot eredményez, de a szövegszolgáltató méretétől függően nagy késéssel rendelkezhet.

TextPattern terminológia

Attribútum
Egy szövegtartomány (például IsItalicAttribute vagy FontNameAttribute) formázási jellemzője.

Degenerált tartomány
A degenerált tartomány üres vagy nulla karakternyi hosszúságú szövegtartomány. A TextPattern vezérlőminta alkalmazásában a szövegbeszúrási pont (vagy rendszerszintű) degenerált tartománynak minősül. Ha nincs kijelölve szöveg, GetSelection egy degenerált tartományt ad vissza a szöveg beszúrási pontján, és RangeFromPoint egy degenerátumtartományt ad vissza kiindulási végpontként. RangeFromChild és GetVisibleRanges degenerált tartományokat adhat vissza, ha a szövegszolgáltató nem talál olyan szövegtartományokat, amelyek megfelelnek az adott feltételnek. Ez a degenerált tartomány kezdő végpontként használható a szövegszolgáltatón belül. FindText és FindAttribute null referenciát ad vissza (Nothing a Microsoft Visual Basic .NET-ben), hogy elkerülje a felderített tartomány és a degenerátumtartomány összekeverését.

Beágyazott objektum
A UI Automation szövegmodelljében kétféle beágyazott objektum található. Ezek szöveges tartalomelemekből, például hivatkozásokból vagy táblázatokból, valamint vezérlőelemekből, például képekből és gombokból állnak. További információért lásd: Beágyazott objektumok elérése az UI Automation segítségével.

végpont
Egy szövegtárolóban lévő szövegtartomány abszolút Start vagy End pontja.

TextPatternRangeEndpoints (kezdés és befejezés). Az alábbiakban a kezdő és végpontok példáit mutatjuk be.

TextRange
Egy szövegtartomány megjelenítése kezdő és végpontokkal egy szövegtárolóban, beleértve az összes társított attribútumot és funkciót.

TextUnit
Előre definiált szövegegység (karakter, szó, sor vagy bekezdés) egy szövegtartomány logikai szegmensei között való navigáláshoz.

Lásd még