Dela via


Översikt över UI Automation-händelser

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.

Microsoft UI Automation-händelsemeddelande är en viktig funktion för hjälpmedelstekniker som skärmläsare och skärmförstorare. Dessa UI Automation-klienter spårar händelser som genereras av UI Automation-leverantörer när något händer i användargränssnittet och använder informationen för att meddela slutanvändarna.

Effektiviteten förbättras genom att tillåta att providerprogram genererar händelser selektivt, beroende på om några klienter prenumererar på dessa händelser, eller inte alls, om inga klienter lyssnar efter några händelser.

Typer av händelser

UI Automation-händelser hör till följande kategorier.

Händelse beskrivning
Egenskapsändring Utlöses när en egenskap i ett UI Automation-element eller kontrollmönster ändras. Om en klient till exempel behöver övervaka ett programs kryssrutekontroll kan den registrera sig för att lyssna efter en egenskapsändringshändelse på ToggleState egenskapen. När kryssrutan är markerad eller avmarkerad genererar providern händelsen och klienten kan agera efter behov.
Elementåtgärd Utlöses när en ändring i användargränssnittet beror på slutanvändare eller programmatisk aktivitet. till exempel när en knapp klickas eller anropas via InvokePattern.
Strukturändring Upphöjt när strukturen för UI Automation-trädet ändras. Strukturen ändras när nya gränssnittsobjekt blir synliga, dolda eller borttagna på skrivbordet.
Global skrivbordsändring Utlöses när åtgärder av globalt intresse för klienten inträffar, till exempel när fokus flyttas från ett element till ett annat, eller när ett fönster stängs.

Vissa händelser innebär inte nödvändigtvis att användargränssnittets tillstånd har ändrats. Om användaren till exempel flikar till ett textinmatningsfält och sedan klickar på en knapp för att uppdatera fältet, utlöses en TextChangedEvent även om användaren faktiskt inte ändrade texten. När du bearbetar en händelse kan det vara nödvändigt för ett klientprogram att kontrollera om något faktiskt har ändrats innan du vidtar åtgärder.

Följande händelser kan uppstå även när användargränssnittets tillstånd inte har ändrats.

  • AutomationPropertyChangedEvent (beroende på vilken egenskap som har ändrats)

  • ElementSelectedEvent

  • InvalidatedEvent

  • TextChangedEvent

Händelseidentifierare för användargränssnittsautomatisering

Microsoft UI Automation-händelser identifieras av AutomationEvent objekt. Egenskapen Id innehåller ett värde som unikt identifierar typen av händelse.

Möjliga värden för Id anges i följande tabell, tillsammans med den typ som används för händelseargument. Observera att de identifierare som används av klienter och leverantörer är identiskt namngivna fält från olika klasser.

Klientidentifierare Provideridentifierare Typ av händelseargument
AutomationElement.AsyncContentLoadedEvent AutomationElementIdentifiers.AsyncContentLoadedEvent AsyncContentLoadedEventArgs
SelectionItemPattern.ElementAddedToSelectionEvent

SelectionItemPattern.ElementRemovedFromSelectionEvent

SelectionItemPattern.ElementSelectedEvent

SelectionPattern.InvalidatedEvent

InvokePattern.InvokedEvent

AutomationElement.LayoutInvalidatedEvent

AutomationElement.MenuClosedEvent

AutomationElement.MenuOpenedEvent

TextPattern.TextChangedEvent

TextPattern.TextSelectionChangedEvent

AutomationElement.ToolTipClosedEvent

AutomationElement.ToolTipOpenedEvent

WindowPattern.WindowOpenedEvent
SelectionItemPatternIdentifiers.ElementAddedToSelectionEvent

SelectionItemPatternIdentifiers.ElementRemovedFromSelectionEvent

SelectionItemPatternIdentifiers.ElementSelectedEvent

SelectionPatternIdentifiers.InvalidatedEvent

InvokePatternIdentifiers.InvokedEvent

AutomationElementIdentifiers.LayoutInvalidatedEvent

AutomationElementIdentifiers.MenuClosedEvent

AutomationElementIdentifiers.MenuOpenedEvent

TextPatternIdentifiers.TextChangedEvent

TextPatternIdentifiers.TextSelectionChangedEvent

AutomationElementIdentifiers.ToolTipClosedEvent

AutomationElementIdentifiers.ToolTipOpenedEvent

WindowPatternIdentifiers.WindowOpenedEvent
AutomationEventArgs
AutomationElement.AutomationFocusChangedEvent AutomationElementIdentifiers.AutomationFocusChangedEvent AutomationFocusChangedEventArgs
AutomationElement.AutomationPropertyChangedEvent AutomationElementIdentifiers.AutomationPropertyChangedEvent AutomationPropertyChangedEventArgs
AutomationElement.StructureChangedEvent AutomationElementIdentifiers.StructureChangedEvent StructureChangedEventArgs
WindowPattern.WindowClosedEvent WindowPatternIdentifiers.WindowClosedEvent WindowClosedEventArgs

UI Automation-händelseargument

Följande klasser kapslar in händelseargument.

Klass beskrivning
AsyncContentLoadedEventArgs Innehåller information om asynkron inläsning av innehåll, inklusive procentandelen slutförd inläsning.
AutomationEventArgs Innehåller information om en enkel händelse som inte kräver några extra data.
AutomationFocusChangedEventArgs Innehåller information om en ändring i indatafokus från ett element till ett annat. Händelser av den här typen genereras av UI Automation-systemet, inte av leverantörer.
AutomationPropertyChangedEventArgs Innehåller information om en ändring i ett egenskapsvärde för ett element eller kontrollmönster.
StructureChangedEventArgs Innehåller information om en ändring i UI Automation-trädet.
WindowClosedEventArgs Innehåller information om att ett fönster stängs.

Alla händelseargumentklasser innehåller en EventId medlem. Den här identifieraren är inkapslad i en AutomationEvent.

De AutomationEvent objekt som används för att identifiera händelser hämtas av leverantörer från fält i AutomationElementIdentifiers och kontrollmönsteridentifierarklasser, till exempel DockPatternIdentifiers. Motsvarande fält hämtas av klientprogram från fält i AutomationElement och kontrollmönsterklasser som DockPattern.

En lista över händelseidentifierare finns i UI Automation Events for Clients (Gränssnittsautomatiseringshändelser för klienter).

Se även