Dela via


Översikt över UI Automation-kontrollmönster

Ett kontrollmönster är en gränssnittsimplementering som exponerar en viss aspekt av en kontrolls funktioner för Microsoft UI Automation-klientprogram. Klienter använder egenskaper och metoder som exponeras via ett kontrollmönster för att hämta information om en viss funktion i kontrollen eller för att manipulera en viss aspekt av kontrollens beteende. Till exempel använder en kontroll som visar ett tabellgränssnitt Grid kontrollmönster för att exponera antalet rader och kolumner i tabellen och för att göra det möjligt för en klient att hämta objekt från tabellen.

UI Automation använder kontrollmönster för att representera vanliga kontrollbeteenden. Du kan till exempel använda Anropa kontrollmönster för kontroller som kan anropas, till exempel knappar, och kontrollmönstret Bläddra för kontroller som har rullningslister, till exempel listrutor, listvyer eller kombinationsrutor. Eftersom varje kontrollmönster representerar en separat funktion kan kontrollmönster kombineras för att beskriva den fullständiga uppsättning funktioner som stöds av en viss kontroll.

Obs

En aggregeringskontroll byggs upp med barnkontroller som tillhandahåller användargränssnittet för de funktioner som föräldrakontrollen exponerar, och föräldrakontrollen bör implementera alla kontrollmönster som vanligtvis är associerade med dess barnkontroller. I sin tur behöver dessa styrmönster inte implementeras av de underordnade kontrollerna.

 

Det här avsnittet innehåller följande avsnitt:

Mönsterkomponenter för UI Automation-kontroll

Kontrollmönster stöder metoder, egenskaper, händelser och relationer som krävs för att definiera en diskret funktion som är tillgänglig i en kontroll.

  • Metoderna gör det möjligt för UI Automation-klienter att manipulera kontrollen.
  • Egenskaperna och händelserna ger information om kontrollens funktioner och tillstånd.
  • Relationen mellan ett UI Automation-element och dess överordnade, underordnade och syskon beskriver elementstrukturen i UI Automation-trädet.

Kontrollmönster relaterar till kontroller som liknar hur 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 klienter fråga en kontroll vilka kontrollmönster som stöds och sedan interagera med kontrollen via egenskaper, metoder, händelser och strukturer som exponeras av kontrollmönstren som stöds.

Kontrollera mönster i leverantörer och klienter

UI Automation-leverantörer implementerar kontrollmönstergränssnitt för att exponera lämpligt beteende för en specifik funktion som stöds av kontrollen. Dessa gränssnitt exponeras inte direkt för klienter, men används av UI Automation-kärnan för att implementera en annan uppsättning klientgränssnitt. En provider exponerar till exempel rullningsfunktioner för UI Automation via IScrollProvideroch UI Automation exponerar funktionerna för klienter via IUIAutomationScrollPattern.

Mönster för dynamisk kontroll

Vissa kontroller stöder inte alltid samma uppsättning kontrollmönster. En redigeringskontroll 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 IUIAutomationScrollPattern dynamiskt, beroende på hur mycket text som finns i redigeringsrutan.

I följande tabell beskrivs UI Automation-kontrollmönstren. Tabellen visar också de providergränssnitt som används för att implementera kontrollmönstren och de klientgränssnitt som används för att komma åt dem.

Namn Providergränssnitt Klientgränssnitt Beskrivning
Anteckning IAnnotationProvider IUIAutomationAnnotationPattern Används för att exponera egenskaperna för en anteckning i ett dokument, till exempel kommentarer i marginalen som är anslutna till dokumenttext.
Dock IDockProvider IUIAutomationDockPattern Används för kontroller som kan dockas i en dockningscontainer, till exempel verktygsfält eller verktygspaletter.
Dra IDragProvider IUIAutomationDragPattern Används för att stödja dragna kontroller eller kontroller med dragna objekt.
DropTarget IDropTargetProvider IUIAutomationDropTargetPattern Används för att stödja kontroller som kan vara målet för en dra och släpp-åtgärd.
Expandera/Kollapsa IExpandCollapseProvider IUIAutomationExpandCollapsePattern Används för kontroller som kan expanderas eller komprimeras, till exempel menyalternativ i ett program, till exempel Arkiv-menyn.
Grid IGridProvider IUIAutomationGridPattern Används för kontroller som stöder rutnätsfunktioner, till exempel storleksändring och flytt till en angiven cell, till exempel den stora ikonvyn i Utforskaren eller enkla tabeller i Microsoft Office Word.
GridItem IGridItemProvider IUIAutomationGridItemPattern 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 Windows Explorer-detaljvyn.
Anropa IInvokeProvider IUIAutomationInvokePattern Används för kontroller som kan anropas, till exempel knappar.
Objektbehållare IItemContainerProvider IUIAutomationItemContainerPattern Används för kontroller som kan innehålla andra objekt.
LegacyIAccessible ILegacyIAccessibleProvider IUIAutomationLegacyIAccessiblePattern Används för att exponera egenskaper och metoder för Microsoft Active Accessibility för UI Automation-klienter.
MultipleView IMultipleViewProvider IUIAutomationMultipleViewPattern Används för kontroller som kan växla mellan flera representationer av samma uppsättning information, data eller underordnade objekt, till exempel en listvykontroll där data är tillgängliga i miniatyrbilder, brickor, ikoner, listor eller detaljvyer.
ObjectModel IObjectModelProvider IUIAutomationObjectModelPattern Används för att exponera en pekare för den underliggande objektmodellen i ett dokument. Med det här kontrollmönstret kan en klient navigera från ett UI Automation-element till den underliggande objektmodellen.
RangeValue IRangeValueProvider IUIAutomationRangeValuePattern Används för kontroller som har ett värdeintervall. En spinnarkontroll som visar år kan till exempel ha ett intervall på 1900–2010, medan en rotationskontroll som visar månader skulle ha ett intervall på 1–12.
rulla IScrollProvider IUIAutomationScrollPattern Används för kontroller som kan rulla när det finns mer information än vad som kan visas i kontrollens visningsområde.
ScrollItem IScrollItemProvider IUIAutomationScrollItemPattern Används för kontroller som har enskilda objekt i en lista som rullar, till exempel en listkontroll i en kombinationsrutekontroll.
val ISelectionProvider IUIAutomationSelectionPattern Används för att välja containerkontroller, till exempel listrutor och kombinationsrutor.
Valobjekt ISelectionItemProvider IUIAutomationSelectionItemPattern Används för enskilda objekt i markeringscontainerkontroller, till exempel listrutor och kombinationsrutor.
kalkylblad ISpreadsheetProvider IUIAutomationSpreadsheetPattern Används för att exponera innehållet i ett kalkylblad eller annat rutnätsbaserat dokument. Kontroller som implementerar kalkylbladskontrollmönstret bör också implementera rutnätskontrollmönstret.
Kalkylbladsobjekt ISpreadsheetItemProvider IUIAutomationSpreadsheetItemPattern Används för att exponera egenskaperna för en cell i ett kalkylblad eller annat rutnätsbaserat dokument. Kontroller som implementerar KalkylbladItem-kontrollmönstret bör också implementera GridItem-kontrollmönstret.
formatmallar IStylesProvider IUIAutomationStylesPattern Används för att beskriva ett gränssnittselement som har ett specifikt format, fyllningsfärg, fyllningsmönster eller form.
SynkroniseradInmatning ISynchronizedInputProvider IUIAutomationSynchronizedInputPattern Används för kontroller som accepterar tangentbords- eller musinmatning.
tabell ITableProvider IUIAutomationTablePattern Används för kontroller som har ett rutnät och rubrikinformation.
TableItem ITableItemProvider IUIAutomationTableItemPattern Används för objekt i en tabell.
Text ITextProvider IUIAutomationTextPattern Används för att redigera kontroller och dokument som visar textinformation.
TextEdit ITextEditProvider IUIAutomationTextEditPattern Används för att redigera kontroller som ändrar text programmatiskt, till exempel en kontroll som utför automatisk korrigering eller aktiverar indatasammansättning.
TextChild ITextChildProvider IUIAutomationTextChildPattern Används för att komma åt ett elements närmaste överordnade objekt som stöder Text-kontrollmönstret.
TextRange ITextRangeProvider IUIAutomationTextRange Används för att hämta textinnehåll, textattribut och inbäddade objekt från textbaserade kontroller som redigeringskontroller och dokument.
Växla IToggleProvider IUIAutomationTogglePattern Används för kontroller där tillståndet kan växlas, till exempel kryssrutor och kontrollerbara menyalternativ.
Transformera ITransformProvider IUIAutomationTransformPattern Används för kontroller som kan storlekändras, flyttas och roteras. Typiska användningsområden för kontrollmönstret Transformera finns i designers, formulär, grafiska redigeringsprogram och ritningsprogram.
Värde IValueProvider IUIAutomationValuePattern Används för kontroller som har ett värde som inte ligger inom ett angivet intervall, till exempel en datum-tid-väljare.
VirtualiseradArtikel IVirtualizedItemProvider IUIAutomationVirtualizedItemPattern Används för kontroller som fungerar med objekt i en virtuell lista.
fönster IWindowProvider IUIAutomationWindowPattern Används för fönster. Exempel är programfönster på den översta nivån, underordnade MDI-fönster (multiple-document interface) och dialogrutor.

 

konceptuell

Implementera UI Automation-kontrollmönster

Kontrollmönstermappning för UI Automation-klienter