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.

Color picker with yellow highlighted. 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