Cenni preliminari sui provider 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.
I provider di automazione interfaccia utente abilitano la comunicazione dei controlli con le applicazioni client di automazione interfaccia utente. In generale, ogni controllo o altro elemento distinto in un'interfaccia utente è rappresentato da un provider. Il provider espone informazioni sull'elemento e facoltativamente implementa i pattern di controllo che consentono all'applicazione client di interagire con il controllo.
Le applicazioni client in genere non devono interagire direttamente con i provider. La maggior parte dei controlli standard nelle applicazioni che usano i framework Win32, Windows Form o Windows Presentation Foundation (WPF) vengono esposti automaticamente al sistema di automazione interfaccia utente. Le applicazioni che implementano controlli personalizzati possono anche implementare i provider di UI Automation per tali controlli. Le applicazioni client non devono eseguire passaggi speciali aggiuntivi per avervi accesso.
In questo argomento viene fornita una panoramica del modo in cui gli sviluppatori di controlli implementano provider di UI Automation, in particolare per i controlli nelle finestre Windows Form e Win32.
Tipi di provider
I provider di automazione interfaccia utente rientrano in due categorie, ovvero provider lato client e provider lato server.
Provider lato client
I provider lato client vengono implementati dai client di automazione interfaccia utente per comunicare con un'applicazione che non supporta, parzialmente o completamente, UI Automation. I provider lato client comunicano in genere con il server attraverso il limite di processo inviando e ricevendo messaggi di Windows.
Poiché i provider di automazione interfaccia utente per i controlli nelle applicazioni Win32, Windows Forms o WPF vengono forniti come parte del sistema operativo, le applicazioni client raramente devono implementare i propri provider e pertanto non saranno oggetto di ulteriore trattazione in questa panoramica.
Provider lato server
I provider lato server vengono implementati da controlli personalizzati o da applicazioni basate su un framework dell'interfaccia utente diverso da Win32, Windows Forms o WPF.
I provider lato server comunicano con le applicazioni client attraverso il limite di processo esponendo le interfacce al sistema principale di UI Automation, che a sua volta gestisce le richieste dai client.
Concetti relativi al provider di automazione interfaccia utente
In questa sezione viene presentata una breve spiegazione di alcuni concetti chiave fondamentali per l'implementazione di provider di automazione interfaccia utente.
Elementi
Gli elementi di UI Automation sono parti dell'interfaccia utente visibili ai client di UI Automation. ad esempio finestre delle applicazioni, riquadri, pulsanti, descrizioni comandi, caselle di riepilogo e voci di elenco.
Navigazione
Gli elementi di UI Automation vengono esposti ai client come albero di UI Automation. UI Automation genera l'albero passando da un elemento a un altro. Lo spostamento è abilitato per i provider per ogni elemento, ciascuno dei quali può puntare a un elemento padre, di pari livello e figlio.
Per altre informazioni sulla visualizzazione client dell'albero di UI Automation, vedere UI Automation Tree Overview.
Visualizzazioni
Un client può vedere l'albero di UI Automation nelle tre visualizzazioni principali, come illustrato nella tabella seguente.
Visualizza | Descrizione |
---|---|
Visualizzazione non elaborata | Contiene tutti gli elementi. |
Visualizzazione controlli | Contiene elementi che sono controlli. |
Visualizzazione contenuto | Contiene elementi che includono contenuti. |
Per altre informazioni sulle visualizzazioni client dell'albero di UI Automation, vedere UI Automation Tree Overview.
È responsabilità dell'implementazione del provider definire un elemento come elemento contenuto o elemento controllo. Gli elementi controllo possono essere anche elementi contenuto, mentre tutti gli elementi contenuto sono elementi controllo.
Framework
Un framework è un componente che gestisce controlli figlio, hit testing e rendering in un'area dello schermo. Ad esempio, una finestra Win32, spesso definita anche come HWND, può essere usata come un framework contenente più elementi di UI Automation quali una barra dei menu, una barra di stato e dei pulsanti.
I controlli contenitore Win32, ad esempio caselle di riepilogo e visualizzazioni albero, sono considerate framework in quanto contengono il proprio codice per il rendering di elementi figlio e l'esecuzione di hit testing su di essi. Per contro, una casella di testo WPF non è un framework perché i processi di rendering e hit testing sono gestiti dalla finestra WPF che la contiene.
L'interfaccia utente in un'applicazione può essere costituita da diversi framework. Ad esempio, una finestra di applicazione HWND può contenere Dynamic HTML (DHTML), che a sua volta contiene un componente, ad esempio una casella combinata, in un elemento HWND.
Frammenti
Un frammento è un sottoalbero completo di elementi di un determinato framework. L'elemento in corrispondenza del nodo radice del sottoalbero è definito radice del frammento. Una radice del frammento non ha un elemento padre, ma è ospitato in un altro framework, in genere una finestra Win32 (HWND).
Hosts
Il nodo radice di ogni frammento deve essere ospitato in un elemento, in genere una finestra Win32 (HWND). L'eccezione è rappresentata dal desktop, che non è ospitato in nessun altro elemento. L'host di un controllo personalizzato è HWND del controllo stesso e non la finestra dell'applicazione o qualsiasi altra finestra che potrebbe contenere gruppi di controlli di primo livello.
L'host di un frammento ha un ruolo importante nell'implementazione dei servizi di UI Automation. Consente lo spostamento alla radice del frammento e rende disponibili alcune proprietà predefinite in modo che il provider personalizzato debba implementarle.