Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Annotazioni
Questa documentazione è destinata agli sviluppatori .NET Framework che vogliono usare le classi di automazione interfaccia utente gestite definite nello spazio dei nomi System.Windows.Automation. Per le informazioni più recenti sull'automazione interfaccia utente, vedere API di automazione di Windows: Automazione interfaccia utente.
Questo argomento descrive il modo in cui gli eventi di automazione interfaccia utente Microsoft vengono usati dai client di automazione interfaccia utente.
Automazione interfaccia utente consente ai client di sottoscrivere eventi di interesse. Questa funzionalità migliora le prestazioni eliminando la necessità di eseguire continuamente il polling di tutti gli elementi dell'interfaccia utente nel sistema per verificare se sono state modificate informazioni, struttura o stato.
L'efficienza è migliorata anche dalla capacità di ascoltare gli eventi solo all'interno di un ambito definito. Ad esempio, un client può ascoltare gli eventi di modifica dello stato attivo su tutti gli elementi di Automazione interfaccia utente nell'albero, oppure su un solo elemento e sui suoi discendenti.
Annotazioni
Non presupporre che tutti gli eventi possibili vengano generati da un provider di automazione interfaccia utente Microsoft. Ad esempio, non tutte le modifiche alle proprietà causano la generazione di eventi dai provider proxy standard per i controlli Windows Form e Win32.
Per una visualizzazione più ampia degli eventi di automazione interfaccia utente, vedere Panoramica degli eventi di automazione interfaccia utente.
Sottoscrizione agli eventi
Le applicazioni client sottoscrivono eventi di un determinato tipo registrando un gestore eventi, usando uno dei metodi seguenti.
Metodo | Tipo di evento | Tipo di argomenti dell'evento | Tipo delegato |
---|---|---|---|
AddAutomationFocusChangedEventHandler | Cambio del focus | AutomationFocusChangedEventArgs | AutomationFocusChangedEventHandler |
AddAutomationPropertyChangedEventHandler | Modifica delle proprietà | AutomationPropertyChangedEventArgs | AutomationPropertyChangedEventHandler |
AddStructureChangedEventHandler | Modifica della struttura | StructureChangedEventArgs | StructureChangedEventHandler |
AddAutomationEventHandler | Tutti gli altri eventi, identificati da un AutomationEvent | AutomationEventArgs o WindowClosedEventArgs | AutomationEventHandler |
Prima di chiamare il metodo, è necessario creare un metodo delegato per gestire l'evento. Se si preferisce, è possibile gestire diversi tipi di eventi in un singolo metodo e passare questo metodo in più chiamate a uno dei metodi nella tabella. Ad esempio, un singolo AutomationEventHandler può essere configurato per gestire vari eventi in modo diverso in base all'oggetto EventId.
Annotazioni
Per elaborare gli eventi di chiusura della finestra, eseguire il cast del tipo di argomento passato al gestore dell'evento come WindowClosedEventArgs. Poiché l'elemento automazione interfaccia utente Microsoft per la finestra non è più valido, non è possibile usare il sender
parametro per recuperare le informazioni. Usare GetRuntimeId invece.
Attenzione
Se l'applicazione potrebbe ricevere eventi dalla propria interfaccia utente, non usare il thread dell'interfaccia utente dell'applicazione per sottoscrivere gli eventi o annullare la sottoscrizione. In questo modo potrebbe verificarsi un comportamento imprevedibile. Per ulteriori informazioni, vedere Problemi di threading dell'automazione dell'interfaccia utente.
Alla disattivazione o quando gli eventi di UI Automation non sono più di interesse per l'applicazione, i client di UI Automation devono chiamare uno dei metodi seguenti.
Metodo | Descrizione |
---|---|
RemoveAutomationEventHandler | Annulla la registrazione di un gestore eventi registrato tramite AddAutomationEventHandler. |
RemoveAutomationFocusChangedEventHandler | Annulla la registrazione di un gestore eventi registrato tramite AddAutomationFocusChangedEventHandler. |
RemoveAutomationPropertyChangedEventHandler | Annulla la registrazione di un gestore eventi registrato tramite AddAutomationPropertyChangedEventHandler. |
RemoveAllEventHandlers | Annulla la registrazione di tutti i gestori eventi registrati. |
Per un esempio di codice, vedere Sottoscrivere eventi di automazione interfaccia utente.