Cenni preliminari sugli eventi di automazione interfaccia utente

Nota

Questa documentazione è destinata agli sviluppatori .NET Framework che desiderano utilizzare le classi di UI Automation gestite definite nello spazio dei nomi System.Windows.Automation. Per informazioni aggiornate su UI Automation, vedere API di automazione di Windows: UI Automation.

La notifica eventi di UI Automation è una funzionalità chiave per dispositivi di assistive technology, quali utilità per la lettura dello schermo e lenti d'ingrandimento. I client di automazione interfaccia utente tengono traccia degli eventi generati dai provider di automazione interfaccia utente quando si verifica un evento nell'interfaccia utente e usano le informazioni per inviare notifiche agli utenti finali.

Una maggiore efficienza è ottenuta consentendo alle applicazioni provider di generare eventi in modo selettivo, se per tali eventi esistono sottoscrizioni di client, o di non generarne affatto, se nessun client è in attesa di eventi.

Tipi di eventi

Gli eventi di UI Automation rientrano nelle categorie seguenti.

Event Descrizione
Modifica proprietà Generato quando una proprietà di un elemento o di un pattern di controllo di UI Automation viene modificata. Ad esempio, se un client deve monitorare una casella di controllo di un'applicazione, può registrarsi per l'attesa di un evento di modifica per la proprietà ToggleState . Quando il controllo casella di controllo viene selezionato o deselezionato, il provider genera l'evento e il client può agire secondo necessità.
Azione elemento Generato quando l'interfaccia utente viene modificata dall'utente finale o da attività a livello di codice, ad esempio quando si fa clic su un pulsante o quest'ultimo viene richiamato tramite InvokePattern.
Modifica struttura Generato quando cambia la struttura dell'albero di UI Automation. La struttura viene modificata quando nuovi elementi dell'interfaccia utente sono resi visibili oppure vengono nascosti o rimossi dal desktop.
Modifica globale desktop Generato quando si verificano azioni di interesse globale per il client, ad esempio quando lo stato attivo passa da un elemento a un altro o quando si chiude una finestra.

Alcuni eventi non indicano necessariamente che lo stato dell'interfaccia utente è cambiato. Ad esempio, se l'utente passa con il tasto TAB a un campo di immissione testo e quindi fa clic su un pulsante per aggiornare il campo, viene generato un evento TextChangedEvent anche se in realtà l'utente non ha modificato il testo. Durante l'elaborazione di un evento, prima di eseguire un'azione può essere necessario per un'applicazione client verificare se sia effettivamente avvenuta una modifica.

I seguenti eventi possono essere generati anche se lo stato dell'interfaccia utente non è cambiato.

  • AutomationPropertyChangedEvent (a seconda della proprietà che è stata modificata)

  • ElementSelectedEvent

  • InvalidatedEvent

  • TextChangedEvent

Identificatori di eventi di automazione interfaccia utente

Gli eventi di Microsoft UI Automation sono identificati dagli oggetti AutomationEvent. La proprietà Id contiene un valore che identifica in modo univoco il tipo di evento.

I valori possibili per Id sono indicati nella tabella riportata di seguito, insieme al tipo usato per gli argomenti dell'evento. Si noti che gli identificatori usati da client e provider sono campi denominati in modo identico di classi diverse.

Identificatore client Identificatore provider Tipo argomenti evento
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

Argomenti di eventi di automazione interfaccia utente

Le classi seguenti incapsulano argomenti di eventi.

Classe Descrizione
AsyncContentLoadedEventArgs Contiene informazioni sul caricamento asincrono del contenuto, compresa la percentuale di completamento del caricamento.
AutomationEventArgs Contiene informazioni su un evento semplice che non richiede dati aggiuntivi.
AutomationFocusChangedEventArgs Contiene informazioni su una modifica nello stato attivo di input da un elemento a un altro. Eventi di questo tipo sono generati dal sistema di UI Automation, non dai provider.
AutomationPropertyChangedEventArgs Contiene informazioni sulla modifica del valore di una proprietà di un elemento o di un pattern di controllo.
StructureChangedEventArgs Contiene informazioni su una modifica nell'albero di UI Automation.
WindowClosedEventArgs Contiene informazioni sulla chiusura di una finestra.

Tutte le classi di argomenti di eventi contengono un membro EventId . Questo identificatore è incapsulato in un AutomationEvent.

Gli oggetti AutomationEvent usati per l'identificazione di eventi sono ottenuti dai provider, che li recuperano da campi in AutomationElementIdentifiers e da classi di identificatori di pattern di controllo quale DockPatternIdentifiers. I campi equivalenti vengono ottenuti dalle applicazioni client da campi in AutomationElement e da classi di pattern di controllo quale DockPattern.

Per un elenco degli identificatori di evento, vedere UI Automation Events for Clients.

Vedi anche