Delen via


Overzicht van UI Automation Tree

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.

Ondersteunende technologieproducten en testscripts navigeren door de UI Automation-structuur om informatie te verzamelen over de gebruikersinterface (UI) en de bijbehorende elementen.

In de UI Automation-structuur bevindt zich een hoofdelement (RootElement) dat het huidige bureaublad vertegenwoordigt en waarvan de onderliggende elementen toepassingsvensters vertegenwoordigen. Elk van deze onderliggende elementen kan elementen bevatten die onderdelen van de gebruikersinterface vertegenwoordigen, zoals menu's, knoppen, werkbalken en keuzelijsten. Deze elementen kunnen op hun beurt elementen bevatten, zoals lijstitems.

De UI Automation-structuur is geen vaste structuur en wordt zelden in zijn geheel gezien omdat deze mogelijk duizenden elementen bevat. Onderdelen ervan worden gebouwd wanneer ze nodig zijn en kunnen wijzigingen ondergaan wanneer elementen worden toegevoegd, verplaatst of verwijderd.

UI Automation-providers ondersteunen de UI Automation-structuur door navigatie tussen items in een fragment te implementeren, dat bestaat uit een hoofdmap (meestal gehost in een venster) en een substructuur. Providers zijn echter niet bezorgd over navigatie van het ene besturingselement naar het andere. Dit wordt beheerd door de UI Automation-kern, met behulp van informatie van de standaardvensterproviders.

Weergaven van de Automatiseringsstructuur

De UI Automation-structuur kan worden gefilterd om weergaven te maken die alleen die objecten bevatten die AutomationElement relevant zijn voor een bepaalde client. Met deze benadering kunnen clients de structuur die via UI Automation wordt gepresenteerd, aanpassen aan hun specifieke behoeften.

De client heeft twee manieren om de weergave aan te passen: door het bereik te voltooien en te filteren. Het bereik definieert de omvang van de weergave, beginnend vanaf een basiselement: de toepassing kan bijvoorbeeld alleen directe onderliggende elementen van het bureaublad of alle onderliggende elementen van een toepassingsvenster vinden. Filteren definieert de typen elementen die moeten worden opgenomen in de weergave.

UI Automation-providers ondersteunen filteren door eigenschappen op elementen te definiƫren, inclusief de IsControlElementProperty en IsContentElementProperty eigenschappen.

UI Automation biedt drie standaardweergaven. Deze weergaven worden gedefinieerd door het type filter dat wordt uitgevoerd; het bereik van een weergave wordt gedefinieerd door de toepassing. Bovendien kan de toepassing andere filters toepassen op eigenschappen; Als u bijvoorbeeld alleen ingeschakelde besturingselementen wilt opnemen in een besturingsweergave.

Onbewerkte weergave

De onbewerkte weergave van de UI Automation-structuur is de volledige structuur van AutomationElement objecten waarvoor het bureaublad de hoofdmap is. De onbewerkte weergave volgt de systeemeigen programmatische structuur van een toepassing en is daarom de meest gedetailleerde weergave die beschikbaar is. Het is ook de basis waarop de andere weergaven van de boom zijn gebouwd. Omdat deze weergave afhankelijk is van het onderliggende UI-framework, heeft de onbewerkte weergave van een WPF-knop een andere onbewerkte weergave dan een Win32-knop.

De onbewerkte weergave wordt verkregen door te zoeken naar elementen zonder eigenschappen op te geven of door de RawViewWalker structuur te gebruiken om door de structuur te navigeren.

Besturingselementweergave

De controleweergave van de UI Automation-structuur vereenvoudigt de taak van het product voor ondersteunende technologie om de gebruikersinterface aan de eindgebruiker te beschrijven en te helpen die eindgebruiker te communiceren met de toepassing, omdat deze nauw wordt toegewezen aan de STRUCTUUR van de gebruikersinterface die door een eindgebruiker wordt waargenomen.

De besturingsweergave is een subset van de onbewerkte weergave. Het bevat alle UI-items uit de onbewerkte weergave die een eindgebruiker zou begrijpen als interactief of bijdragen aan de logische structuur van het besturingselement in de gebruikersinterface. Voorbeelden van UI-items die bijdragen aan de logische structuur van de gebruikersinterface, maar die zelf niet interactief zijn, zijn itemcontainers zoals lijstweergavekopteksten, werkbalken, menu's en de statusbalk. Niet-interactieve items die eenvoudig worden gebruikt voor indeling of decoratieve doeleinden, worden niet weergegeven in de besturingsweergave. Een voorbeeld is een paneel dat alleen is gebruikt om de besturingselementen in een dialoogvenster in te delen, maar zelf geen informatie bevat. Niet-interactieve items die in de besturingsweergave worden weergegeven, zijn afbeeldingen met informatie en statische tekst in een dialoogvenster. Niet-interactieve items die zijn opgenomen in de besturingsweergave, kunnen de toetsenbordfocus niet ontvangen.

De besturingselementweergave wordt verkregen door te zoeken naar elementen waarop de IsControlElement eigenschap is ingesteld trueof door de ControlViewWalker structuur te navigeren.

Inhoudsweergave

De inhoudsweergave van de UI Automation-structuur is een subset van de besturingsweergave. Het bevat UI-items die de werkelijke informatie overbrengen in een gebruikersinterface, inclusief UI-items die de focus van het toetsenbord kunnen ontvangen en sommige tekst die geen label is op een UI-item. De waarden in een vervolgkeuzelijst met invoervak worden bijvoorbeeld weergegeven in de inhoudsweergave, omdat ze de gegevens vertegenwoordigen die door een eindgebruiker worden gebruikt. In de inhoudsweergave worden een keuzelijst met invoervak en keuzelijst beide weergegeven als een verzameling UI-items waarin een item of misschien meerdere items kan worden geselecteerd. Het feit dat deze altijd open is en die kan worden uitgevouwen en samengevouwen, is niet relevant in de inhoudsweergave, omdat deze is ontworpen om de gegevens of inhoud weer te geven die aan de gebruiker wordt gepresenteerd.

De inhoudsweergave wordt verkregen door te zoeken naar elementen waarop de IsContentElement eigenschap is ingesteld trueof door de ContentViewWalker structuur te navigeren.

Zie ook