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 presenta linee guida e convenzioni per l'implementazione di IInvokeProvider, incluse informazioni su eventi e proprietà. Alla fine della panoramica sono elencati collegamenti ad altro materiale di riferimento.
Il InvokePattern pattern di controllo viene usato per supportare i controlli che non mantengono lo stato quando sono attivati, ma piuttosto avviano o eseguono un'unica azione non ambigua. I controlli che mantengono lo stato, ad esempio caselle di controllo e pulsanti di opzione, devono implementare IToggleProvider e ISelectionItemProvider rispettivamente. Per esempi di controlli che implementano il pattern di controllo Invoke, vedere Mapping dei pattern di controllo per i client di automazione interfaccia utente.
Linee guida e convenzioni di implementazione
Quando si implementa il pattern di controllo Invoke, tenere presenti le linee guida e le convenzioni seguenti:
I controlli implementano IInvokeProvider se lo stesso comportamento non viene esposto tramite un altro provider del pattern di controllo. Ad esempio, se il Invoke metodo in un controllo esegue la stessa azione del Expand metodo o Collapse , il controllo non deve implementare IInvokeProvider.
La chiamata di un controllo viene in genere eseguita facendo clic o facendo doppio clic o premendo INVIO, una scelta rapida da tastiera predefinita o una combinazione alternativa di tasti.
InvokedEvent viene generato su un controllo attivato (come risposta a un controllo che esegue l'azione associata). Se possibile, l'evento deve essere generato dopo che il controllo ha completato l'azione e restituito senza bloccare. L'evento Richiamato deve essere generato prima di gestire la richiesta Invoke negli scenari seguenti:
Non è possibile o pratico attendere il completamento dell'azione.
L'azione richiede l'interazione dell'utente.
L'azione richiede molto tempo e causerà il blocco del client chiamante per una quantità significativa di tempo.
Se il richiamo del controllo ha effetti collaterali significativi, tali effetti collaterali devono essere esposti tramite la HelpText proprietà . Ad esempio, anche se Invoke non è associato alla selezione, Invoke un altro controllo può diventare selezionato.
Gli effetti hover (o mouse-over) in genere non costituiscono un evento richiamato. Tuttavia, i controlli che eseguono un'azione (anziché causare un effetto visivo) in base allo stato di passaggio del mouse devono supportare il InvokePattern pattern di controllo.
Annotazioni
Questa implementazione è considerata un problema di accessibilità se il controllo può essere richiamato solo in seguito a un effetto collaterale correlato al mouse.
La chiamata di un controllo è diversa dalla selezione di un elemento. Tuttavia, a seconda del controllo, richiamare l'elemento potrebbe diventare selezionato come effetto collaterale. Ad esempio, richiamando una voce di elenco di documenti di Microsoft Word nella cartella Documenti, entrambi selezionano l'elemento e apre il documento.
Un elemento può scomparire dall'albero di automazione interfaccia utente immediatamente dopo essere stato richiamato. La richiesta di informazioni dall'elemento fornito dal callback dell'evento potrebbe non riuscire di conseguenza. La prelettura delle informazioni memorizzate nella cache è la soluzione alternativa consigliata.
I controlli possono implementare più pattern di controllo. Ad esempio, il controllo Colore riempimento sulla barra degli strumenti di Microsoft Excel implementa sia i pattern di controllo InvokePattern che ExpandCollapsePattern. ExpandCollapsePattern espone il menu e InvokePattern riempie la selezione attiva con il colore scelto.
Membri obbligatori per IInvokeProvider
Per l'implementazione IInvokeProviderdi sono necessari i metodi e le proprietà seguenti.
Membri obbligatori | Tipo di membro | Note |
---|---|---|
Invoke | metodo |
Invoke è una chiamata asincrona e deve ritornare immediatamente senza bloccare. Questo comportamento è particolarmente critico per i controlli che, direttamente o indirettamente, avviano una finestra di dialogo modale quando viene richiamata. Qualsiasi client di automazione interfaccia utente che ha creato l'evento rimarrà bloccato fino alla chiusura della finestra di dialogo modale. |
Eccezioni
I provider devono sollevare le eccezioni seguenti.
Tipo di eccezione | Condizione |
---|---|
ElementNotEnabledException | Se il controllo non è abilitato. |
Vedere anche
- Panoramica dei modelli di controllo per l'automazione dell'interfaccia utente
- Supportare i Pattern di Controllo in un Provider di Automazione dell'Interfaccia Utente
- Modelli di Controllo di Automazione per l'Interfaccia Utente dei Client
- Utilizzare un controllo usando UI Automation
- Panoramica dell'albero di automazione dell'interfaccia utente
- Usare il caching nell'automazione dell'interfaccia utente