Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De tekstuele inhoud van een besturingselement wordt weergegeven met behulp van het besturingselement Text-besturingspatroon, dat de inhoud van een tekstcontainer voorstelt als een tekststroom. Voor het tekstbeheerpatroon is de ondersteuning van het TextRange-besturingselement vereist om opmaak- en stijlkenmerken beschikbaar te maken. Het textrange-besturingselementpatroon ondersteunt het tekstbeheerpatroon door aaneengesloten of meerdere, niet-aaneengesloten tekstbereiken (of bereiken) in een tekstcontainer weer te geven met een verzameling begin- en eindeindpunten. Het TextRange-besturingspatroon ondersteunt functionaliteit zoals selectie, vergelijking, ophalen en doorkruisen.
Notitie
Het besturingselement Text biedt geen methode om tekst in te voegen of te wijzigen. Afhankelijk van het besturingselement kan dit worden gedaan met behulp van de Microsoft UI Automation Waarde bedieningspatroon of via de directe toetsenbordinvoer. Er is ook een TextEdit patroon dat programmatische wijziging in tekst ondersteunt.
De functionaliteit die in dit onderwerp wordt beschreven, is essentieel voor ondersteunende technologieleveranciers en hun eindgebruikers. Ondersteunende technologieën kunnen UI Automation gebruiken om volledige tekstopmaakgegevens voor de gebruiker te verzamelen en programmatische navigatie en selectie van tekst te bieden door middel van TextUnit (teken, woord, regel of alinea).
Dit onderwerp bevat de volgende secties:
- UI Automation TextPattern en het Text Services Framework-
- typen besturingselementen
- Providerinterfaces
- Klantinterfaces
- Prestatie
- tekstpatroon en gevirtualiseerde ingesloten objecten
- Het Aangepaste Besturingselementtype gebruiken met het Tekstbeheerpatroon
- levensduur van een tekstbereik
- Verwante onderwerpen
UI Automation TextPattern en het 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 het tekstarchief.
TSF is ontworpen voor toepassingen die invoer moeten injecteren in contextbewuste scenario's. Het besturingselement Text is echter een alleen-lezenoplossing die bedoeld is om geoptimaliseerde toegang te bieden tot een tekstopslag voor schermlezers en Braille-apparatuur.
Toegankelijke technologieën waarvoor alleen-lezentoegang tot een tekstarchief is vereist, kunnen het patroon Tekstbeheer gebruiken, maar hebben de functionaliteit van TSF nodig voor contextbewuste invoer.
Zie Text Services Frameworkvoor meer informatie.
Typen besturingselementen
Het UI Automation Bewerken besturingselementtype en het Document besturingselementtype moeten het Tekst besturingspatroon ondersteunen. Voor verbeterde toegankelijkheid raadt Microsoft aan dat de ToolTip-- en tekstbesturingselementtypen ook het tekstbesturingselementpatroon ondersteunen, maar dit is niet vereist.
Providerinterfaces
UI Automation-providers ondersteunen het Text-besturingspatroon voor een besturingselement door de ITextProvider- en ITextRangeProvider- interfaces te implementeren. Deze interfaces bevatten gedetailleerde kenmerkinformatie voor tekst in het besturingselement en bieden robuuste navigatiemogelijkheden.
Een provider hoeft niet alle tekstkenmerken te ondersteunen als het besturingselement bepaalde kenmerken niet ondersteunt.
Een provider moet de ITextProvider::GetSelection en ITextRangeProvider::Select methoden ondersteunen als het besturingselement ondersteuning biedt voor tekstselectie of plaatsing van de tekstcursor (of systeemcursor) 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 eigenschap ITextProvider::SupportedTextSelection te implementeren.
Een provider moet altijd ondersteuning bieden voor de TextUnit constanten, TextUnit_Character en TextUnit_Document, evenals alle andere die het kan ondersteunen.
Notitie
De provider kan ondersteuning voor een specifieke TextUnit- overslaan door over te schakelen naar de volgende grootste eenheid die in de volgorde wordt ondersteund: TextUnit_Character, TextUnit_Format, TextUnit_Word, TextUnit_Line, TextUnit_Paragraph, TextUnit_Pageen TextUnit_Document.
Client Interfaces
Ui Automation-clienttoepassingen gebruiken de IUIAutomationTextPattern- en IUIAutomationTextRange interfaces voor toegang tot de tekstuele inhoud van een tekstbeheer. Clients gebruiken IUIAutomationTextPattern om stukken tekst te selecteren die tekstbereikenworden genoemd, en om verwijzingen naar IUIAutomationTextRange interfaces voor deze bereiken op te halen. De IUIAutomationTextRange interface stelt clients in staat om het tekstbereik te bewerken en informatie over de tekst in het bereik op te halen, waaronder kenmerken zoals de lettertypenaam, voorgrondkleur, onderstrepingsstijl, enzovoort. Zie Text Attribute Identifiersvoor meer informatie.
Prestaties
Het text--besturingspatroon is afhankelijk van procesoproepen voor de meeste functionaliteit. Het biedt dus geen cachingmechanisme om de prestaties te verbeteren wanneer inhoud wordt verwerkt. Andere besturingspatronen binnen Microsoft UI Automation kunnen worden benaderd met de methode IUIAutomationElement::GetCachedPattern.
Een techniek voor het verbeteren van de prestaties is ervoor te zorgen dat UI Automation-clients proberen om tekstblokken met een gemiddelde grootte op te halen met behulp van de methode IUIAutomationTextRange::GetText. Als je bijvoorbeeld GetText- gebruikt om afzonderlijke tekens op te halen, brengt dit cross-process-overheads per teken met zich mee. Als je echter geen maximale lengte specificeert wanneer je GetText- aanroept, heb je één cross-process-overhead, maar kan dit hoge latentie veroorzaken, afhankelijk van de grootte van het tekstbereik.
Tekstpatroon en gevirtualiseerde ingesloten objecten
Indien mogelijk moet een provider-implementatie van ITextProvider en ITextRangeProvider de volledige tekst van een document ondersteunen, inclusief alle tekst buiten de viewport. Voor tekst buiten het scherm of ingesloten objecten die zijn gevirtualiseerd, moeten providers het VirtualizedItem-besturingspatroon (IVirtualizedItemProvider) ondersteunen.
Als een document is gevirtualiseerd terwijl de hele tekststroom nog steeds beschikbaar is, haalt de eigenschap ITextProvider::D ocumentRange een tekstbereik op dat het hele document bevat. Als u echter de methode ITextRangeProvider aanroept, wordt een verzameling gevirtualiseerde objecten opgehaald die alle ingesloten objecten in het document vertegenwoordigen. Clients moeten de IVirtualizedItemProvider::Realize methode aanroepen om te communiceren met een gevirtualiseerd ingesloten object, waardoor de items volledig toegankelijk zijn als UI Automation-elementen. Clients moeten een vergelijkbaar proces volgen om te werken met rasterelementen in een ingesloten tabel waarin een deel van de tabel niet op het scherm wordt weergegeven en gevirtualiseerd.
Het aangepaste controle type gebruiken met het tekstbedieningspatroon
Hoewel het besturingselement Text veel tekstkenmerken en ingesloten objecten ondersteunt, is het niet mogelijk om vooraf alle mogelijke documentelementen en presentatietypen te definiëren. Voor documentelementen die niet worden ondersteund door de bestaande kenmerken of standaardbesturingselementtypen, kunnen providers gebruikmaken van de extensibiliteitsfeatures van de UI Automation Aangepast control type.
Voor toepassingen en gebruikersinterfaces die zijn gebaseerd op paginapresentaties, kan de grens- en indelingspresentatie van 'pagina' ook worden uitgedrukt als een ingesloten object met een aangepast besturingselementtype (dat wil gezegd LocalizedControlType="page"
). Op die manier kan het ingesloten object andere pagina-elementen hosten die niet eenvoudig deel kunnen uitmaken van de documenttekststroom, zoals de kop- en voettekstvelden van elke pagina, als onderliggende elementen van het ingesloten object 'pagina'. Elk 'pagina'-object kan ook onafhankelijk het text--besturingspatroon ondersteunen, wat goed werkt voor toepassingen zoals ontwerpprogramma's voor diavoorstellingspresentaties of pagina-gebaseerde bureaubladpublicatieomgevingen.
Levensduur van een tekstbereik
Indien mogelijk moet een provider ervoor zorgen dat tekstwijzigingen, zoals verwijderingen, invoegingen en verplaatsingen, worden doorgevoerd in het bijbehorende tekstbereik. Als het bijwerken van het tekstbereik niet mogelijk is, moet de provider een UIA_Text_TextChangedEventId gebeurtenis genereren om clients te laten weten dat het tekstbereik niet meer geldig is en dat er een nieuwe moet worden opgehaald.
Verwante onderwerpen
-
conceptuele
-
Overzicht van UI Automation-besturingspatronen
-
andere resources