Implementazione del pattern di controllo di scorrimento dell'automazione dell'interfaccia utente
Nota
Questa documentazione è destinata agli sviluppatori .NET Framework che desiderano utilizzare le classi di Automazione interfaccia utente gestite definite nello spazio dei nomi System.Windows.Automation. Per informazioni aggiornate su Automazione interfaccia utente, vedere API di automazione di Windows: Automazione interfaccia utente.
Questo articolo illustra le linee guida e le convenzioni per l'implementazione di IScrollProvider, incluse le informazioni relative a eventi e proprietà. Alla fine della panoramica sono elencati collegamenti ad altro materiale di riferimento.
Il pattern di controllo ScrollPattern viene usato per supportare un controllo che funge da contenitore scorrevole per una raccolta di oggetti figlio. Pur supportandole, il controllo non deve usare le barre di scorrimento per supportare la funzionalità di scorrimento.
Esempio di controllo scorrevole che non usa barre di scorrimento
Per esempi di controlli che implementano questo controllo, vedere Control Pattern Mapping for UI Automation Clients.
Linee guida e convenzioni di implementazione
Quando si implementa il pattern di controllo Scroll, tenere presenti le linee guida e le convenzioni seguenti:
Gli elementi figlio di questo controllo devono implementare IScrollItemProvider.
Le barre di scorrimento di un controllo contenitore non supportano il pattern di controllo ScrollPattern . Devono invece supportare il pattern di controllo RangeValuePattern .
Quando lo scorrimento è misurato in percentuali, tutti i valori o gli importi relativi alla scala di scorrimento devono essere normalizzati in base a un intervallo compreso tra 0 e 100.
HorizontallyScrollableProperty e VerticallyScrollableProperty sono indipendenti da IsEnabledProperty.
Se HorizontallyScrollableProperty =
false
, HorizontalViewSizeProperty deve essere impostata su 100% e HorizontalScrollPercentProperty deve essere impostata su NoScroll. In modo analogo, se VerticallyScrollableProperty =false
, VerticalViewSizeProperty deve essere impostata su 100% e VerticalScrollPercentProperty deve essere impostata su NoScroll. In questo modo, un client di automazione dell'interfaccia utente è in grado di usare questi valori di proprietà all'interno del metodo SetScrollPercent evitando una race condition se viene attivata una direzione di scorrimento non pertinente per il client.HorizontalScrollPercent dipende dalle impostazioni locali. L'impostazione di HorizontalScrollPercent = 100.0 deve impostare la posizione di scorrimento del controllo sull'equivalente della posizione all'estrema destra per lingue caratterizzate dalla lettura da sinistra a destra, ad esempio l'inglese. In alternativa, per lingue caratterizzate dalla lettura da destra a sinistra, ad esempio l'arabo, l'impostazione di HorizontalScrollPercent = 100.0 deve impostare la posizione di scorrimento nella posizione più a sinistra.
Membri obbligatori per IScrollProvider
Le proprietà e i metodi seguenti sono obbligatori per l'implementazione di IScrollProvider.
Membro obbligatorio | Tipo di membro | Note |
---|---|---|
HorizontalScrollPercent | Proprietà | None |
VerticalScrollPercent | Proprietà | None |
HorizontalViewSize | Proprietà | None |
VerticalViewSize | Proprietà | None |
HorizontallyScrollable | Proprietà | None |
VerticallyScrollable | Proprietà | None |
Scroll | metodo | None |
SetScrollPercent | metodo | None |
Questo pattern di controllo non è associato a eventi.
Eccezioni
I provider devono generare le eccezioni seguenti.
Tipo di eccezione | Condizione |
---|---|
ArgumentException | Scroll genera questa eccezione se un controllo supporta valori di SmallIncrement esclusivamente per lo scorrimento orizzontale o verticale, ma viene passato un valore di LargeIncrement . |
ArgumentException | SetScrollPercent genera questa eccezione quando viene passato un valore che non può essere convertito in valore double. |
ArgumentOutOfRangeException | SetScrollPercent genera questa eccezione quando viene passato un valore maggiore di 100 o minore di 0 (eccetto -1, che equivale a NoScroll). |
InvalidOperationException | Scroll e SetScrollPercent generano entrambi questa eccezione quando viene effettuato un tentativo di scorrimento in una direzione non supportata. |
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
- Panoramica dell'albero di automazione interfaccia utente
- Usare la memorizzazione nella cache in automazione interfaccia utente