Condividi tramite


Implementazione del modello di controllo ExpandCollapse 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 IExpandCollapseProvider, incluse informazioni su proprietà, metodi ed eventi. I collegamenti a riferimenti aggiuntivi sono elencati alla fine della panoramica.

Il ExpandCollapsePattern pattern di controllo viene usato per supportare controlli che si espandono visivamente per visualizzare più contenuto e comprimere per nascondere il contenuto. 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 ExpandCollapse, tenere presenti le linee guida e le convenzioni seguenti:

  • I controlli aggregati, compilati con oggetti figlio che forniscono all'interfaccia utente funzionalità di espansione/compressione, devono supportare il ExpandCollapsePattern pattern di controllo, mentre gli elementi figlio non lo fanno. Ad esempio, un controllo casella combinata viene costruito con una combinazione di controlli casella di riepilogo, pulsante e controllo di modifica, ma è solo la casella combinata principale che deve supportare ExpandCollapsePattern.

    Annotazioni

    Un'eccezione è il controllo menu, che è un'aggregazione di singoli oggetti MenuItem. Gli oggetti MenuItem possono supportare il ExpandCollapsePattern pattern di controllo, ma il controllo Menu padre non può. Un'eccezione simile si applica ai controlli Tree e Tree Item.

  • Quando l'oggetto ExpandCollapseState di un controllo è impostato su LeafNode, tutte le ExpandCollapsePattern funzionalità sono attualmente inattive per il controllo e le uniche informazioni che è possibile ottenere utilizzando questo pattern di controllo sono .ExpandCollapseState Se successivamente vengono aggiunti oggetti figlio, le ExpandCollapseState modifiche e le funzionalità ExpandCollapsePattern vengono attivate.

  • ExpandCollapseState fa riferimento alla visibilità solo degli oggetti figlio immediati; non fa riferimento alla visibilità di tutti gli oggetti discendenti.

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

    • Il menu personale di Office può essere un oggetto MenuItem tri-stato (Expanded, Collapsed e PartiallyExpanded) in cui il controllo specifica lo stato da adottare quando viene chiamato un oggetto Expand o Collapse.

    • Il chiamare Expand su un TreeItem può visualizzare tutti i discendenti o solo i figli immediati.

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

  • Per garantire la navigazione, è consigliabile che un oggetto si trova nell'albero di automazione interfaccia utente (con stato di visibilità appropriato) indipendentemente dai relativi elementi padre ExpandCollapseState. Se i discendenti vengono generati su richiesta, possono essere visualizzati solo nell'albero di automazione interfaccia utente dopo essere stati visualizzati per la prima volta o solo mentre sono visibili.

Membri obbligatori per IExpandCollapseProvider

Per l'implementazione IExpandCollapseProviderdi sono necessari i metodi e le proprietà seguenti.

Membri obbligatori Tipo di membro Note
ExpandCollapseState Proprietà Nessuno
Expand Metodo Nessuno
Collapse Metodo Nessuno
AutomationPropertyChangedEventHandler Evento Questo controllo non ha eventi associati; usare questo delegato generico.

Eccezioni

I provider devono sollevare le eccezioni seguenti.

Tipo di eccezione Condizione
InvalidOperationException O Expand o Collapse viene chiamato quando ExpandCollapseState = LeafNode.

Vedere anche