Implementazione del pattern di controllo Selection 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.
In questo argomento vengono presentate le linee guida e le convenzioni per l'implementazione di ISelectionProvider, incluse le informazioni relative a eventi e proprietà. Alla fine della panoramica sono elencati collegamenti ad altro materiale di riferimento.
Il pattern di controllo SelectionPattern viene usato per supportare i controlli che fungono da contenitori per una raccolta di elementi figlio selezionabili. Gli elementi figlio di questo elemento devono implementare ISelectionItemProvider. Per esempi di controlli che implementano questo pattern di controllo, vedere Control Pattern Mapping for UI Automation Clients.
Linee guida e convenzioni di implementazione
Quando si implementa il pattern di controllo Selection, tenere presenti le linee guida e le convenzioni seguenti:
I controlli che implementano ISelectionProvider consentono la selezione di uno o più elementi figlio. Ad esempio, una casella di riepilogo e le visualizzazioni elenco e struttura ad albero supportano più selezioni, mentre una casella combinata, un dispositivo di scorrimento e un gruppo di pulsanti di opzione supportano solo una selezione.
I controlli che presentano un intervallo minimo, massimo e continuo, ad esempio il controllo dispositivo di scorrimento Volume , deve implementare IRangeValueProvider anziché ISelectionProvider.
I controlli a selezione singola che gestiscono i controlli figlio che implementano IRawElementProviderFragmentRoot, ad esempio il dispositivo di scorrimento Risoluzione schermo nella finestra di dialogo Proprietà di visualizzazione oppure il controllo di selezione Selezione colori in Microsoft Word (illustrato di seguito), devono implementare ISelectionProvider. I relativi elementi figlio devono implementare IRawElementProviderFragment e ISelectionItemProvider.
Esempio di mapping delle stringhe dei campioni colore
- I menu non supportano SelectionPattern. Se vengono usate voci di menu che includono testo e grafica, ad esempio gli elementi Riquadro di anteprima nel menu Visualizza in Microsoft Outlook, e se occorre indicare lo stato, è necessario implementare IToggleProvider.
Membri obbligatori per ISelectionProvider
Le proprietà, i metodi e gli eventi seguenti sono obbligatori per l'implementazione dell'interfaccia ISelectionProvider .
Membri obbligatori | Type | Note |
---|---|---|
CanSelectMultiple | Proprietà | Deve supportare gli eventi modificati dalla proprietà tramite AddAutomationPropertyChangedEventHandler e RemoveAutomationPropertyChangedEventHandler. |
IsSelectionRequired | Proprietà | Deve supportare gli eventi modificati dalla proprietà tramite AddAutomationPropertyChangedEventHandler e RemoveAutomationPropertyChangedEventHandler. |
GetSelection | metodo | None |
InvalidatedEvent | Event | Generato quando una selezione in un contenitore ha subito modifiche significative e richiede l'invio di un numero di eventi di aggiunta e rimozione maggiore rispetto a quanto definito mediante la costante InvalidateLimit . |
Le proprietà IsSelectionRequired e CanSelectMultiple possono essere dinamiche. Ad esempio, lo stato iniziale di un controllo potrebbe prevedere la selezione di nessun elemento per impostazione predefinita, a indicare che IsSelectionRequired è false
. Tuttavia, dopo aver selezionato un elemento, il controllo deve sempre avere almeno un elemento selezionato. Analogamente, in casi rari, un controllo potrebbe consentire la selezione di più elementi durante l'inizializzazione e successivamente consentire solo selezioni singole.
Eccezioni
I provider devono generare le eccezioni seguenti.
Tipo di eccezione | Condizione |
---|---|
ElementNotEnabledException | Il controllo non è abilitato. |
InvalidOperationException | Il controllo è nascosto. |
Vedi anche
- Panoramica dei pattern di controllo per l'automazione interfaccia utente
- Supportare pattern di controllo in un provider di automazione interfaccia utente
- Pattern di controllo di automazione interfaccia utente per i client
- Implementazione del pattern di controllo SelectionItem di automazione interfaccia utente
- Panoramica dell'albero di automazione interfaccia utente
- Usare la memorizzazione nella cache in automazione interfaccia utente