Condividi tramite


Panoramica dei provider di automazione interfaccia utente

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.

I provider di automazione interfaccia utente consentono ai controlli di comunicare 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 implementa facoltativamente i pattern di controllo che consentono all'applicazione client di interagire con il controllo.

Le applicazioni client in genere non devono funzionare 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 provider di automazione interfaccia utente per tali controlli e le applicazioni client non devono eseguire alcuna procedura speciale per ottenere l'accesso a tali controlli.

In questo argomento viene fornita una panoramica del modo in cui gli sviluppatori di controlli implementano provider di automazione interfaccia utente, in particolare per i controlli nelle finestre Windows Form e Win32.

Tipi di provider

I provider di automazione interfaccia utente rientrano in due categorie: provider lato client e provider lato server.

Provider lato utente

I provider lato client vengono implementati dai clienti di Automazione Interfaccia Utente per comunicare con un'applicazione che non supporta o non supporta completamente l'Automazione Interfaccia Utente. I provider lato client comunicano in genere con il server oltre il limite del processo inviando e ricevendo messaggi di Windows.

Poiché i provider di automazione interfaccia utente per i controlli nelle applicazioni Win32, Windows Form o WPF vengono forniti come parte del sistema operativo, le applicazioni client raramente devono implementare i propri provider e questa panoramica non li copre ulteriormente.

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 Form o WPF.

I provider lato server comunicano con le applicazioni client oltre il limite del processo esponendo le interfacce al sistema principale di automazione interfaccia utente, che a sua volta gestisce le richieste dai client.

Concetti relativi al provider di automazione dell'interfaccia utente

Questa sezione fornisce brevi spiegazioni di alcuni dei concetti chiave da comprendere per implementare i provider di automazione interfaccia utente.

Elementi

Gli elementi di Automazione UI sono componenti dell'interfaccia utente visibili ai client di Automazione UI. Gli esempi includono finestre dell'applicazione, riquadri, pulsanti, descrizioni comando, caselle di riepilogo ed elementi di elenco.

Gli elementi di automazione interfaccia utente vengono esposti ai client come albero di automazione interfaccia utente. UI Automation costruisce l'albero navigando da un elemento a un altro. La navigazione è abilitata dai provider per ogni elemento, ognuno dei quali può puntare a un elemento padre, elementi fratelli e figli.

Per ulteriori informazioni sulla visualizzazione client dell'Albero di Automazione Interfaccia Utente, vedere UI Automation Tree Overview.

Visualizzazioni

Un client può visualizzare l'albero di automazione interfaccia utente in tre visualizzazioni principali, come illustrato nella tabella seguente.

Visualizza Descrizione
Visualizzazione non elaborata Contiene tutti gli elementi.
Visualizzazione di controllo Contiene elementi di controllo.
Visualizzazione contenuto Contiene elementi con contenuto.

Per ulteriori informazioni sulle visualizzazioni client dell'albero di automazione dell'interfaccia utente, vedere UI Automation Tree Overview.

È responsabilità dell'implementazione del provider definire un elemento come elemento di contenuto o un elemento di controllo. Gli elementi di controllo possono essere o meno elementi di contenuto, ma tutti gli elementi del contenuto sono elementi di 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 HWND, può fungere da framework che contiene più elementi di automazione interfaccia utente, ad esempio una barra dei menu, una barra di stato e pulsanti.

I controlli contenitore Win32, ad esempio caselle di riepilogo e visualizzazioni ad albero, sono considerati framework, perché contengono il proprio codice per il rendering degli elementi figlio e l'esecuzione di hit testing su di essi. Al contrario, una casella di riepilogo WPF non è un framework, perché il rendering e l'hit testing vengono gestiti dalla finestra WPF contenitore.

L'interfaccia utente in un'applicazione può essere costituita da framework diversi. Ad esempio, una finestra dell'applicazione HWND potrebbe contenere codice HTML dinamico (DHTML) che a sua volta contiene un componente, ad esempio una casella combinata in un HWND.

Frammenti

Un frammento è un sottoalbero completo di elementi di un framework specifico. L'elemento nel nodo radice del sottoalbero viene chiamato radice di frammento. Una radice di frammento non ha un elemento padre, ma è ospitata all'interno di un altro framework, in genere una finestra Win32 (HWND).

Ospiti

Il nodo radice di ogni frammento deve essere ospitato in un elemento, in genere una finestra Win32 (HWND). L'eccezione è il desktop, che non è ospitato in nessun altro elemento. L'host di un controllo personalizzato è L'HWND del controllo stesso, non la finestra dell'applicazione o qualsiasi altra finestra che potrebbe contenere gruppi di controlli di primo livello.

L'host di un frammento svolge un ruolo importante nella fornitura di servizi di automazione interfaccia utente. Consente la navigazione alla radice del frammento e fornisce alcune proprietà predefinite in modo che il provider personalizzato non deve implementarle.

Vedere anche