Overzicht van UI Automation TextPattern
Notitie
Deze documentatie is bedoeld voor .NET Framework-ontwikkelaars die de beheerde UI Automation-klassen willen gebruiken die zijn gedefinieerd in de System.Windows.Automation naamruimte. Zie Windows Automation-API: UI Automation voor de meest recente informatie over UI Automation.
In dit overzicht wordt beschreven hoe u Microsoft UI Automation gebruikt om de tekstuele inhoud, inclusief opmaak- en stijlkenmerken, weer te geven van tekstbesturingselementen in door UI Automation ondersteunde platforms. Deze besturingselementen omvatten, maar zijn niet beperkt tot, microsoft .NET Framework TextBox en RichTextBox hun Win32-equivalenten.
Het beschikbaar maken van de tekstuele inhoud van een besturingselement wordt bereikt door het gebruik van het TextPattern besturingspatroon, dat de inhoud van een tekstcontainer weergeeft als een tekststroom. Op zijn beurt TextPattern is de ondersteuning van de TextPatternRange klasse vereist om opmaak- en stijlkenmerken beschikbaar te maken. TextPatternRange ondersteunt TextPattern door aaneengesloten of meerdere, niet-aaneengesloten tekstbereiken in een tekstcontainer weer te geven met een verzameling Start en End eindpunten. TextPatternRange ondersteunt functionaliteit zoals selectie, vergelijking, ophalen en doorkruisen.
Notitie
De TextPattern klassen bieden geen middelen om tekst in te voegen of te wijzigen. Afhankelijk van het besturingselement kan dit echter worden bereikt door de automatisering van de gebruikersinterface ValuePattern of via directe toetsenbordinvoer. Zie het tekstvoorbeeld TextPattern invoegen voor een voorbeeld.
De functionaliteit die in dit overzicht wordt beschreven, is essentieel voor ondersteunende technologieleveranciers en hun eindgebruikers. Ondersteunende technologieën kunnen UI Automation gebruiken om volledige informatie over tekstopmaak voor de gebruiker te verzamelen en programmatische navigatie en selectie van tekst te bieden op TextUnit (teken, woord, regel of alinea).
UI Automation TextPattern versus Text Services Framework
Text Services Framework (TSF) is een eenvoudig en schaalbaar systeemframework waarmee services voor natuurlijke taal en geavanceerde tekstinvoer op het bureaublad en in toepassingen mogelijk zijn. Naast het bieden van interfaces voor toepassingen om hun tekstarchief beschikbaar te maken, ondersteunt het ook metagegevens voor dat tekstarchief.
TSF is echter ontworpen voor toepassingen die invoer moeten injecteren in contextbewuste scenario's, terwijl TextPattern dit een alleen-lezen oplossing is (met de beperkte tijdelijke oplossing die hierboven wordt vermeld) bedoeld om geoptimaliseerde toegang te bieden tot een tekstarchief voor schermlezers en Braille-apparaten.
Kortom, toegankelijke technologieën die alleen-lezentoegang tot een tekstarchief vereisen, kunnen worden gebruikt TextPattern, maar hebben de complexere functionaliteit van TSF nodig voor contextbewuste invoer.
Typen besturingselementen
Sms verzenden
Het besturingselement Tekst is het basiselement dat een stuk tekst op het scherm vertegenwoordigt.
Een zelfstandig tekstbesturingselement kan worden gebruikt als label of statische tekst op een formulier. Tekstbesturingselementen kunnen ook worden opgenomen in de structuur van een ListItem, TreeItem of DataItem.
Notitie
Tekstbesturingselementen worden mogelijk niet weergegeven in de inhoudsweergave van de UI Automation-structuur (zie Overzicht van ui-automatiseringsstructuur). Dit komt doordat tekstbesturingselementen vaak worden weergegeven via de eigenschap Naam van een ander besturingselement. De tekst die wordt gebruikt om een besturingselement Bewerken te labelen, wordt bijvoorbeeld weergegeven via de eigenschap Naam van het besturingselement Bewerken. Omdat het besturingselement Bewerken zich in de inhoudsweergave van de UI Automation-structuur bevindt, is het niet nodig dat het tekstelement zelf zich in die weergave van de UI Automation-structuur bevindt. De enige tekst die wordt weergegeven in de inhoudsweergave, is tekst die geen overbodige informatie is. Hierdoor kan elke ondersteunende technologie snel filteren op de gegevens die hun gebruikers nodig hebben.
Bewerken
Met besturingselementen bewerken kan een gebruiker één regel tekst weergeven en bewerken.
Notitie
De tekstregel kan in bepaalde indelingsscenario's worden teruglopen.
Document
Met documentbesturingselementen kan een gebruiker navigeren en informatie verkrijgen van meerdere pagina's met tekst.
TextPattern Client-API's
Type | Description |
---|---|
System.Windows.Automation.TextPattern Klasse |
Het toegangspunt voor het tekstmodel van Microsoft UI Automation. Deze klasse bevat ook de twee TextPattern gebeurtenislisteners en TextChangedEventTextSelectionChangedEvent . |
System.Windows.Automation.Text.TextPatternRange Klasse |
De weergave van een tekstspanne binnen een tekstcontainer die ondersteuning biedt TextPatternvoor . UI Automation-clients moeten voorzichtig zijn met de huidige geldigheid van een tekstbereik dat is gemaakt met behulp van TextPatternRange. Als de oorspronkelijke tekst in het tekst besturingselement volledig wordt vervangen door nieuwe tekst, wordt het huidige tekstbereik ongeldig. Het tekstbereik kan echter nog enige levensvatbaarheid hebben als slechts een deel van de oorspronkelijke tekst wordt gewijzigd en het onderliggende tekstbeheer de tekst 'aanwijzer' beheert met ankers (of eindpunten) in plaats van met absolute tekenpositie. Clients kunnen luisteren naar een TextChangedEvent melding van eventuele wijzigingen in de tekstuele inhoud waarmee ze werken. |
System.Windows.Automation.AutomationTextAttribute Klasse |
Wordt gebruikt om de opmaakkenmerken van een tekstbereik te identificeren. |
TextPattern Provider-API's
UI-elementen of besturingselementen die worden ondersteund TextPattern door het implementeren van de ITextProvider en ITextRangeProvider interfaces, zowel systeemeigen als via Microsoft UI Automation-proxy's, kunnen gedetailleerde kenmerkinformatie weergeven voor alle tekst die ze bevatten, naast robuuste navigatiemogelijkheden.
Een TextPattern provider hoeft niet alle tekstkenmerken te ondersteunen als het besturingselement geen ondersteuning biedt voor bepaalde kenmerken.
Een TextPattern provider moet ondersteuning bieden voor de GetSelection en Select functies als het besturingselement ondersteuning biedt voor tekstselectie of plaatsing van de tekstcursor (of systeemzorg) in het tekstgebied. Als het besturingselement deze functionaliteit niet ondersteunt, hoeft het geen van deze methoden te ondersteunen. Het besturingselement moet echter het type tekstselectie beschikbaar maken dat wordt ondersteund door de SupportedTextSelection eigenschap te implementeren.
Een TextPattern provider moet altijd de TextUnit constanten Character en Document alle andere TextUnit constanten ondersteunen.
Notitie
De provider kan ondersteuning voor een specifieke TextUnit overslaan door uit te stellen naar de volgende grootste TextUnit ondersteunde in de volgende volgorde: Character, , WordFormat, Line, , Paragraph, , en .DocumentPage
API | Beschrijving |
---|---|
ITextProvider Interface |
Maakt methoden, eigenschappen en kenmerken beschikbaar die worden ondersteund TextPattern in clienttoepassingen (zie ITextProvider). |
ITextRangeProvider Interface |
Vertegenwoordigt een tekstspanne in een tekstprovider (zie ITextRangeProvider). |
System.Windows.Automation.TextPatternIdentifiers Klasse |
Bevat waarden die worden gebruikt als id's voor tekstproviders (zie TextPatternIdentifiers). |
Beveiliging
De UI Automation-architectuur is ontworpen met beveiliging in het achterhoofd (zie Overzicht van UI Automation-beveiliging). Voor de TextPattern-klassen die in dit overzicht worden beschreven, zijn echter enkele specifieke beveiligingsoverwegingen vereist.
Microsoft UI Automation-tekstproviders leveren alleen-lezeninterfaces en bieden niet de mogelijkheid om de bestaande tekst in een besturingselement te wijzigen.
UI Automation-clients kunnen microsoft UI Automation alleen gebruiken als ze volledig 'vertrouwd' zijn. Een voorbeeld hiervan is het beveiligde aanmeldings bureaublad, waarbij alleen bekende en vertrouwde toepassingen kunnen worden uitgevoerd.
Ontwikkelaars van UI Automation-providers moeten zich ervan bewust zijn dat alle informatie die ze kiezen om beschikbaar te maken in hun besturingselementen via Microsoft UI Automation, in wezen openbaar en volledig toegankelijk is via andere code. Microsoft UI Automation doet geen moeite om de betrouwbaarheid van een UI Automation-client te bepalen en daarom mag de UI Automation-provider beveiligde inhoud of gevoelige tekstinformatie (zoals wachtwoordvelden) niet beschikbaar maken.
Een van de belangrijkste wijzigingen in de beveiliging voor Windows Vista wordt algemeen aangeduid als 'Secure Input' die technologieën omvat, zoals Gebruikersaccounts met minimale bevoegdheden (of Beperkt) gebruikersaccounts (LUA) en UIPI (Privilege Level Isolation).
UIPI voorkomt dat het ene programma meer 'bevoegde' programma's beheert en/of bewaakt, waardoor berichtaanvallen in meerdere processen worden voorkomen die gebruikersinvoer vervalsten.
LUA stelt limieten in voor de bevoegdheden van toepassingen die worden uitgevoerd door gebruikers in de groep Beheer istrators. Toepassingen hebben niet noodzakelijkerwijs beheerdersbevoegdheden, maar worden in plaats daarvan uitgevoerd met de minste bevoegdheden die nodig zijn. Als gevolg hiervan zijn er mogelijk enkele beperkingen die worden afgedwongen in LUA-scenario's. Met name het afkappen van tekenreeksen (inclusief TextPattern-tekenreeksen), waar het mogelijk nodig is om de grootte van tekenreeksen te beperken die worden opgehaald uit toepassingen op beheerdersniveau, zodat ze geen geheugen hoeven toe te wijzen aan het punt van het uitschakelen van de toepassing.
Prestaties
Omdat TextPattern afhankelijk is van cross-process calls voor de meeste functionaliteit, biedt het geen cachingmechanisme om de prestaties te verbeteren bij het verwerken van inhoud. Dit is in tegenstelling tot andere besturingspatronen in Microsoft UI Automation die kunnen worden geopend met behulp van de GetCachedPattern of TryGetCachedPattern methoden.
Een tactiek voor het verbeteren van de prestaties is door ervoor te zorgen dat UI Automation-clients proberen om tekstblokken met een gemiddelde grootte op te halen met behulp van GetText. GetText(1)-aanroepen veroorzaken bijvoorbeeld kruisprocestreffers voor elk teken, terwijl één GetText(-1)-aanroep één kruisproces raakt, maar kan een hoge latentie hebben, afhankelijk van de grootte van de tekstprovider.
TextPattern-terminologie
Kenmerk
Een opmaakkenmerk van een tekstbereik (bijvoorbeeld IsItalicAttribute of FontNameAttribute).
Degenererend bereik
Een degenererend bereik is een leeg tekstbereik of een tekstbereik met nul tekens. Voor het besturingselement TextPattern wordt de tekstinvoegpositie (of systeemzorg) beschouwd als een degenererend bereik. Als er geen tekst is geselecteerd, GetSelection retourneert u een degenererend bereik op de invoegpositie van de tekst en RangeFromPoint retourneert u een degenererend bereik als begineindpunt. RangeFromChild en GetVisibleRanges kan degenereerde bereiken retourneren wanneer de tekstprovider geen tekstbereiken kan vinden die overeenkomen met de opgegeven voorwaarde. Dit degenereerde bereik kan worden gebruikt als een begineindpunt binnen de tekstprovider. FindText en FindAttribute retourneer een null-verwijzing (Nothing
in Microsoft Visual Basic .NET) om verwarring te voorkomen met een gedetecteerd bereik versus een degenererend bereik.
Ingesloten object
Er zijn twee typen ingesloten objecten in het ui Automation-tekstmodel. Ze bestaan uit inhoudselementen op basis van tekst, zoals hyperlinks of tabellen, en besturingselementen zoals afbeeldingen en knoppen. Zie Toegang tot ingesloten objecten met behulp van UI-automatisering voor meer informatie.
Eindpunt
Het absolute Start of End punt van een tekstbereik binnen een tekstcontainer.
Hieronder ziet u een set begin- en eindpunten.
Textrange
Een weergave van een reeks tekst, met begin- en eindpunten, in een tekstcontainer met alle bijbehorende kenmerken en functionaliteit.
TextUnit
Een vooraf gedefinieerde teksteenheid (teken, woord, regel of alinea) die wordt gebruikt voor het navigeren door logische segmenten van een tekstbereik.
Zie ook
- UI Automation-besturingspatronen voor clients
- Overzicht van UI Automation-besturingspatronen
- Overzicht van UI Automation Tree
- Caching gebruiken in UI Automation
- Ondersteuning voor beheerpatronen in een UI Automation-provider
- Toewijzing van besturingspatronen voor UI Automation-clients
- Text Services Framework