Condividi tramite


Implementazione del pattern di controllo della selezione dell'automazione dell'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.

Questo argomento presenta linee guida e convenzioni per l'implementazione di ISelectionProvider, incluse informazioni su eventi e proprietà. I collegamenti a riferimenti aggiuntivi sono elencati alla fine dell'argomento.

Il modello di controllo SelectionPattern viene utilizzato per supportare controlli che fungono da contenitori per una raccolta di elementi figli selezionabili. Gli elementi figlio di questo elemento devono essere implementati ISelectionItemProvider. Per esempi di controlli che implementano questo pattern di controllo, vedere Mapping dei criteri di controllo per i client di automazione interfaccia utente.

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 permettono di selezionare uno o più elementi figli. Ad esempio, la casella di riepilogo, la visualizzazione elenco e la visualizzazione ad albero supportano selezioni multiple, mentre la casella combinata, il cursore e il gruppo di pulsanti di opzione supportano la selezione singola.

  • I controlli che hanno un intervallo minimo, massimo e continuo, come il dispositivo di controllo del volume, devono implementare IRangeValueProvider anziché ISelectionProvider.

  • I controlli a selezione singola che gestiscono i controlli figlio che implementano IRawElementProviderFragmentRoot, ad esempio il dispositivo di scorrimento Schermo nella finestra di dialogo Proprietà di visualizzazione o il controllo selezione colori di Microsoft Word (illustrato di seguito), devono implementare ISelectionProvider; i relativi elementi figlio devono implementare sia IRawElementProviderFragment che ISelectionItemProvider.

Selettore colore con evidenziazione in giallo. Esempio di mappatura delle stringhe del campione di colore

  • I menu non sono in grado di supportare SelectionPattern. Se si utilizzano voci di menu che includono sia grafica che testo (ad esempio, le voci del riquadro di anteprima nel menu Visualizza in Microsoft Outlook) e devono comunicare lo stato, è necessario implementare IToggleProvider.

Membri obbligatori per ISelectionProvider

Per l'interfaccia ISelectionProvider sono necessarie le proprietà, i metodi e gli eventi seguenti.

Membri obbligatori TIPO Note
CanSelectMultiple Proprietà Deve supportare gli eventi modificati della proprietà usando AddAutomationPropertyChangedEventHandler e RemoveAutomationPropertyChangedEventHandler.
IsSelectionRequired Proprietà Deve supportare gli eventi modificati della proprietà usando AddAutomationPropertyChangedEventHandler e RemoveAutomationPropertyChangedEventHandler.
GetSelection Metodo Nessuno
InvalidatedEvent Evento Generato quando una selezione in un contenitore è cambiata in modo significativo e richiede l'invio di più eventi di addizione e rimozione rispetto a quelli consentiti dalla InvalidateLimit costante.

Le IsSelectionRequired proprietà e CanSelectMultiple possono essere dinamiche. Ad esempio, lo stato iniziale di un controllo potrebbe non avere elementi selezionati 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 rari casi, un controllo potrebbe consentire la selezione di più elementi durante l'inizializzazione, ma successivamente consente di effettuare solo selezioni singole.

Eccezioni

I provider devono sollevare le eccezioni seguenti.

Tipo di eccezione Condizione
ElementNotEnabledException Se il controllo non è abilitato.
InvalidOperationException Se il controllo è nascosto.

Vedere anche