Översikt över UI Automation-träd
Kommentar
Den här dokumentationen System.Windows.Automation är avsedd för .NET Framework-utvecklare som vill använda de hanterade UI Automation-klasserna som definierats i namnområdet. Den senaste informationen om UI Automation finns i Windows Automation API: UI Automation.
Hjälpmedelsprodukter och testskript navigerar i UI Automation-trädet för att samla in information om användargränssnittet (UI) och dess element.
I UI Automation-trädet finns ett rotelement (RootElement) som representerar det aktuella skrivbordet och vars underordnade element representerar programfönster. Vart och ett av dessa underordnade element kan innehålla element som representerar delar av användargränssnittet, till exempel menyer, knappar, verktygsfält och listrutor. Dessa element kan i sin tur innehålla element som listobjekt.
UI Automation-trädet är inte en fast struktur och visas sällan i sin helhet eftersom det kan innehålla tusentals element. Delar av den skapas efter behov och kan ändras när element läggs till, flyttas eller tas bort.
UI Automation-leverantörer stöder UI Automation-trädet genom att implementera navigering mellan objekt i ett fragment, som består av en rot (vanligtvis i ett fönster) och ett underträd. Leverantörerna bryr sig dock inte om navigering från en kontroll till en annan. Detta hanteras av UI Automation-kärnan med hjälp av information från standardfönsterprovidrar.
Vyer över Automation-trädet
UI Automation-trädet kan filtreras för att skapa vyer som endast innehåller de objekt som AutomationElement är relevanta för en viss klient. Med den här metoden kan klienter anpassa strukturen som presenteras via UI Automation efter deras specifika behov.
Klienten har två sätt att anpassa vyn: genom omfång och filtrering. Omfånget definierar omfattningen av vyn, med början från ett baselement: till exempel kanske programmet bara vill hitta direkta underordnade till skrivbordet eller alla underordnade i ett programfönster. Filtrering definierar de typer av element som ska ingå i vyn.
UI Automation-leverantörer stöder filtrering genom att definiera egenskaper för element, inklusive IsControlElementProperty egenskaperna och IsContentElementProperty .
UI Automation innehåller tre standardvyer. Dessa vyer definieras av vilken typ av filtrering som utförs. omfånget för en vy definieras av programmet. Dessutom kan programmet använda andra filter på egenskaper. om du till exempel bara vill inkludera aktiverade kontroller i en kontrollvy.
Raw-vy
Den råa vyn för UI Automation-trädet är det fullständiga trädet AutomationElement med objekt som skrivbordet är roten för. Raw-vyn följer noga programmets interna programmatiska struktur och är därför den mest detaljerade vyn som är tillgänglig. Det är också den bas som de andra vyerna i trädet är byggda på. Eftersom den här vyn är beroende av det underliggande UI-ramverket har den råa vyn för en WPF-knapp en annan råvy än en Win32-knapp.
Den råa vyn hämtas genom att söka efter element utan att ange egenskaper eller genom att använda RawViewWalker för att navigera i trädet.
Kontrollvy
Kontrollvyn för UI Automation-trädet förenklar assistive technology-produktens uppgift att beskriva användargränssnittet för slutanvändaren och hjälpa slutanvändaren att interagera med programmet eftersom det nära mappar till den användargränssnittsstruktur som en slutanvändare uppfattar.
Kontrollvyn är en delmängd av den råa vyn. Den innehåller alla användargränssnittsobjekt från den råa vyn som en slutanvändare skulle förstå som interaktiv eller bidra till kontrollens logiska struktur i användargränssnittet. Exempel på gränssnittsobjekt som bidrar till användargränssnittets logiska struktur, men som inte själva är interaktiva, är objektcontainrar som listvyrubriker, verktygsfält, menyer och statusfältet. Icke-interaktiva objekt som bara används för layout eller dekorativa ändamål visas inte i kontrollvyn. Ett exempel är en panel som bara användes för att lägga ut kontrollerna i en dialogruta, men som inte själv innehåller någon information. Icke-interaktiva objekt som visas i kontrollvyn är grafik med information och statisk text i en dialogruta. Icke-interaktiva objekt som ingår i kontrollvyn kan inte ta emot tangentbordsfokus.
Kontrollvyn hämtas genom att söka efter element som har IsControlElement egenskapen inställd på true
, eller med hjälp ControlViewWalker av för att navigera i trädet.
Innehållsvy
Innehållsvyn i UI Automation-trädet är en delmängd av kontrollvyn. Den innehåller gränssnittsobjekt som förmedlar den sanna informationen i ett användargränssnitt, inklusive gränssnittsobjekt som kan ta emot tangentbordsfokus och text som inte är en etikett på ett användargränssnittsobjekt. Till exempel visas värdena i en listruta i innehållsvyn eftersom de representerar den information som används av en slutanvändare. I innehållsvyn representeras både en kombinationsruta och listruta som en samling gränssnittsobjekt där ett eller kanske fler än ett objekt kan väljas. Det faktum att en alltid är öppen och man kan expandera och komprimera är irrelevant i innehållsvyn eftersom den är utformad för att visa de data eller innehåll som presenteras för användaren.
Innehållsvyn hämtas genom att söka efter element som har IsContentElement egenskapen inställd på true
, eller genom att använda ContentViewWalker för att navigera i trädet.