Dela via


Ö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.

Se även