Översikt över UI Automation Control Patterns
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.
Den här översikten introducerar Kontrollmönster för Microsoft UI Automation. Kontrollmönster ger ett sätt att kategorisera och exponera en kontrolls funktioner oberoende av kontrolltypen eller kontrollens utseende.
UI Automation använder kontrollmönster för att representera vanliga kontrollbeteenden. Du kan till exempel använda mönstret Anropa kontroll för kontroller som kan anropas (till exempel knappar) och rullningskontrollmönstret för kontroller som har rullningslister (till exempel listrutor, listvyer eller kombinationsrutor). Eftersom varje kontrollmönster representerar en separat funktion kan de kombineras för att beskriva den fullständiga uppsättning funktioner som stöds av en viss kontroll.
Kommentar
Sammanställda kontroller – byggda med underordnade kontroller som tillhandahåller användargränssnittet (UI) för funktioner som exponeras av den överordnade – bör implementera alla kontrollmönster som normalt är associerade med varje underordnad kontroll. Samma kontrollmönster behöver i sin tur inte implementeras av de underordnade kontrollerna.
Mönsterkomponenter för UI Automation-kontroll
Kontrollmönster stöder de metoder, egenskaper, händelser och relationer som behövs för att definiera en diskret funktion som är tillgänglig i en kontroll.
Relationen mellan ett UI Automation-element och dess överordnade, underordnade och syskon beskriver elementets struktur i UI Automation-trädet.
Metoderna gör det möjligt för UI Automation-klienter att manipulera kontrollen.
Egenskaperna och händelserna innehåller information om kontrollmönstrets funktioner samt information om kontrollens tillstånd.
Kontrollmönster relaterar till användargränssnitt eftersom gränssnitten relaterar till COM-objekt (Component Object Model). I COM kan du fråga ett objekt för att fråga vilka gränssnitt det stöder och sedan använda dessa gränssnitt för att få åtkomst till funktioner. I UI Automation kan UI Automation-klienter fråga en kontroll vilka kontrollmönster som den stöder och sedan interagera med kontrollen via egenskaper, metoder, händelser och strukturer som exponeras av de kontrollmönster som stöds. För en redigeringsruta med flera rutor implementerar IScrollProviderUI Automation-leverantörer till exempel . När en klient vet att en AutomationElement stöder ScrollPattern kontrollmönstret kan den använda egenskaper, metoder och händelser som exponeras av kontrollmönstret för att ändra kontrollen eller komma åt information om kontrollen.
Leverantörer och klienter för användargränssnittsautomatisering
UI Automation-leverantörer implementerar kontrollmönster för att exponera lämpligt beteende för en specifik funktion som stöds av kontrollen.
UI Automation-klienter får åtkomst till metoder och egenskaper för UI Automation-kontrollmönsterklasser och använder dem för att hämta information om användargränssnittet eller för att ändra användargränssnittet. Dessa kontrollmönsterklasser finns i System.Windows.Automation namnområdet (till exempel InvokePattern och SelectionPattern).
Klienter använder AutomationElement metoder (till exempel AutomationElement.GetCurrentPropertyValue eller AutomationElement.GetCachedPropertyValue) eller CLR-accessorer (Common Language Runtime) för att få åtkomst till UI Automation-egenskaperna i ett mönster. Varje kontrollmönsterklass har en fältmedlem (till exempel InvokePattern.Pattern eller SelectionPattern.Pattern) som identifierar kontrollmönstret och kan skickas som en parameter till GetCachedPattern eller GetCurrentPattern för att hämta det mönstret för en AutomationElement.
Mönster för dynamisk kontroll
Vissa kontroller stöder inte alltid samma uppsättning kontrollmönster. Kontrollmönster anses ha stöd när de är tillgängliga för en UI Automation-klient. En redigeringsruta med flera rader möjliggör till exempel endast lodrät rullning när den innehåller fler textrader än vad som kan visas i dess visningsbara område. Rullning inaktiveras när tillräckligt med text tas bort så att rullning inte längre krävs. I det här exemplet stöds mönstret ScrollPattern-kontroll dynamiskt beroende på kontrollens aktuella tillstånd (hur mycket text som finns i redigeringsrutan).
Kontrollera mönsterklasser och gränssnitt
I följande tabell beskrivs UI Automation-kontrollmönstren. Tabellen visar även de klasser som används av UI Automation-klienter för att komma åt kontrollmönstren, samt de gränssnitt som används av UI Automation-leverantörer för att implementera dem.
Kontrollmönsterklass | Providergränssnitt | beskrivning |
---|---|---|
DockPattern | IDockProvider | Används för kontroller som kan dockas i en dockningscontainer. Till exempel verktygsfält eller verktygspaletter. |
ExpandCollapsePattern | IExpandCollapseProvider | Används för kontroller som kan expanderas eller komprimeras. Till exempel menyalternativ i ett program, till exempel Arkiv-menyn . |
GridPattern | IGridProvider | Används för kontroller som stöder rutnätsfunktioner som storleksändring och flytt till en angiven cell. Till exempel den stora ikonvyn i Utforskaren eller enkla tabeller utan rubriker i Microsoft Word. |
GridItemPattern | IGridItemProvider | Används för kontroller som har celler i rutnät. De enskilda cellerna bör ha stöd för GridItem-mönstret. Till exempel varje cell i Microsoft Windows Explorer-detaljvyn. |
InvokePattern | IInvokeProvider | Används för kontroller som kan anropas, till exempel en knapp. |
MultipleViewPattern | IMultipleViewProvider | Används för kontroller som kan växla mellan flera representationer av samma uppsättning information, data eller underordnade. Till exempel en listvykontroll där data är tillgängliga i miniatyr, panel, ikon, lista eller detaljvyer. |
RangeValuePattern | IRangeValueProvider | Används för kontroller som har ett intervall med värden som kan tillämpas på kontrollen. En spinnarkontroll som innehåller år kan till exempel ha ett intervall mellan 1900 och 2010, medan en annan spinnarkontroll som presenterar månader skulle ha ett intervall på 1 till 12. |
ScrollPattern | IScrollProvider | Används för kontroller som kan rullas. Till exempel en kontroll som har rullningslister som är aktiva när det finns mer information än vad som kan visas i kontrollens visningsområde. |
ScrollItemPattern | IScrollItemProvider | Används för kontroller som har enskilda objekt i en lista som rullar. Till exempel en listkontroll som har enskilda objekt i rullningslistan, till exempel en kombinationsrutekontroll. |
SelectionPattern | ISelectionProvider | Används för att välja containerkontroller. Till exempel listrutor och kombinationsrutor. |
SelectionItemPattern | ISelectionItemProvider | Används för enskilda objekt i markeringscontainerkontroller, till exempel listrutor och kombinationsrutor. |
TablePattern | ITableProvider | Används för kontroller som har ett rutnät samt rubrikinformation. Till exempel Microsoft Excel-kalkylblad. |
TableItemPattern | ITableItemProvider | Används för objekt i en tabell. |
TextPattern | ITextProvider | Används för att redigera kontroller och dokument som visar textinformation. |
TogglePattern | IToggleProvider | Används för kontroller där tillståndet kan växlas. Till exempel kryssrutor och kontrollerbara menyalternativ. |
TransformPattern | ITransformProvider | Används för kontroller som kan ändras, flyttas och roteras. Typiska användningsområden för kontrollmönstret Transformera finns i designers, formulär, grafiska redigeringsprogram och ritningsprogram. |
ValuePattern | IValueProvider | Tillåter klienter att hämta eller ange ett värde för kontroller som inte stöder ett värdeintervall. Till exempel en datumtidsväljare. |
WindowPattern | IWindowProvider | Exponerar information som är specifik för windows, ett grundläggande begrepp för Microsoft Windows-operativsystemet. Exempel på kontroller som är fönster är programfönster på den översta nivån (Microsoft Word, Microsoft Windows Explorer och så vidare), underordnade MDI-fönster (multiple-document interface) och dialogrutor. |