Implementazione del pattern di controllo ExpandCollapse 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 IExpandCollapseProvider, incluse le informazioni relative a proprietà, metodi ed eventi. Alla fine della panoramica sono elencati collegamenti a ulteriore materiale di riferimento.

Il pattern di controllo ExpandCollapsePattern è usato per supportare i controlli in grado di espandersi visivamente per visualizzare una maggiore quantità di contenuto e di comprimersi per nascondere il contenuto stesso. 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 ExpandCollapse, tenere presenti le linee guida e le convenzioni seguenti:

  • I controlli di aggregazione, compilati con oggetti figlio che forniscono all'interfaccia utente funzionalità di espansione/compressione, devono supportare il pattern di controllo ExpandCollapsePattern , contrariamente ai relativi elementi figlio. Ad esempio, un controllo casella combinata viene compilato con una combinazione di controlli casella di riepilogo, pulsante e casella di modifica, ma solo la casella combinata padre deve supportare il pattern di controllo ExpandCollapsePattern.

    Nota

    Un'eccezione è costituita dal controllo menu, che è un'aggregazione di singoli oggetti MenuItem. Gli oggetti MenuItem possono supportare il pattern di controllo ExpandCollapsePattern , contrariamente al controllo menu padre. Un'eccezione analoga si applica ai controlli Tree e TreeItem.

  • Quando ExpandCollapseState di un controllo è impostato su LeafNode, le funzionalità ExpandCollapsePattern per il controllo non sono attive e l'unica informazione che è possibile ottenere mediante questo pattern di controllo è ExpandCollapseState. Se successivamente vengono aggiunti oggetti figlio, ExpandCollapseState cambia e la funzionalità ExpandCollapsePattern viene attivata.

  • ExpandCollapseState si riferisce solo alla visibilità di oggetti figlio diretti, non alla visibilità di tutti gli oggetti discendenti.

  • La funzionalità di espansione e compressione è specifica del controllo. Di seguito sono riportati alcuni esempi di questo comportamento.

    • Il menu personale di Office può essere un MenuItem a tre stati (Expanded, Collapsed e PartiallyExpanded) dove il controllo specifica lo stato da adottare quando si verifica una chiamata a Expand o a Collapse .

    • Una chiamata a Expand per un controllo TreeItem può visualizzare tutti i discendenti o solo elementi figlio diretti.

    • Se la chiamata a Expand o a Collapse per un controllo mantiene lo stato dei relativi discendenti, deve essere inviato un evento di modifica della visibilità, non un evento di modifica stato. Se il controllo padre non mantiene lo stato dei relativi discendenti quando viene compresso, il controllo può eliminare tutti i discendenti non più visibili e generare un evento di eliminazione permanente oppure può modificare ExpandCollapseState per ogni discendente e generare un evento di modifica della visibilità.

  • Per garantire lo spostamento, è consigliabile che un oggetto si trovi nell'albero di UI Automation (con stato di visibilità appropriato) indipendentemente dallo stato ExpandCollapseState dell'elemento padre. Se i discendenti vengono generati su richiesta, possono essere visualizzati nell'albero di UI Automation solo dopo essere stati visualizzati per la prima volta o solo quando sono visibili.

Membri obbligatori per IExpandCollapseProvider

Le proprietà e i metodi seguenti sono obbligatori per l'implementazione di IExpandCollapseProvider.

Membri obbligatori Tipo di membro Note
ExpandCollapseState Proprietà None
Expand metodo None
Collapse metodo None
AutomationPropertyChangedEventHandler Event A questo controllo non sono associati eventi; usare questo delegato generico.

Eccezioni

I provider devono generare le eccezioni seguenti.

Tipo di eccezione Condizione
InvalidOperationException Viene eseguita una chiamata a Expand o a Collapse quando ExpandCollapseState = LeafNode.

Vedi anche