Condividi tramite


Pattern di controllo ExpandCollapse

Vengono descritte linee guida e convenzioni per l'implementazione di IExpandCollapseProvider, incluse informazioni sulle proprietà, i metodi e gli eventi. Il modello di controllo ExpandCollapse viene usato per supportare i controlli che si espandono visivamente per visualizzare più contenuto e comprimere per nascondere il contenuto.

Per esempi di controlli che implementano questo modello di controllo, vedere Tipi di controllo e modelli di controllo supportati.

In questo argomento sono contenute le sezioni seguenti.

Linee guida e convenzioni di implementazione

Quando si implementa il modello di controllo ExpandCollapse , prendere nota delle linee guida e delle convenzioni seguenti:

  • I controlli di aggregazione, compilati con oggetti figlio che forniscono all'interfaccia utente funzionalità di espansione/compressione, devono supportare il modello di controllo ExpandCollapse mentre gli elementi figlio non sono. Ad esempio, un controllo casella combinata viene compilato con una combinazione di controlli casella di riepilogo, pulsante e modifica, ma è solo la casella combinata padre che deve supportare il modello di controllo ExpandCollapse .

    Nota

    Un'eccezione è il controllo del menu, ovvero un'aggregazione di singoli oggetti voce di menu. Gli oggetti della voce di menu possono supportare il modello di controllo ExpandCollapse , ma il controllo del menu padre non può. Un'eccezione simile si applica ai controlli albero e elemento albero.

     

  • Quando L'IExpandCollapseProvider::ExpandCollapseState di un controllo è impostato su ExpandCollapseState_LeafNode, qualsiasi funzionalità ExpandCollapse è attualmente inattiva per il controllo e le uniche informazioni che possono essere ottenute usando questo modello di controllo è ExpandCollapseState. Se vengono aggiunti successivamente oggetti figlio, viene attivata la funzionalità ExpandCollapseState e ExpandCollapse .

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

  • La funzionalità IExpandCollapseProvider::Expand and Collapse è specifica del controllo. Di seguito sono riportati alcuni esempi di questo comportamento.

    • Il menu personale di Office può essere una voce di menu a tre stati ("Espanso", "Compresso" e "ParzialmenteExpanded") in cui il controllo specifica lo stato da adottare quando viene chiamato Expand o Collapse .
    • La chiamata a Espandi su un elemento ad albero può visualizzare tutti i discendenti o solo i figli immediati.
    • Se si chiama Espandi o Comprime su un controllo mantiene lo stato dei 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 discendenti quando viene compresso, il controllo può distruggere tutti i discendenti che non sono più visibili e generare un evento distrutto; oppure può modificare ExpandCollapseState per 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 Microsoft (con stato di visibilità appropriato) indipendentemente dai genitori ExpandCollapseState. Se i discendenti vengono generati su richiesta, possono essere visualizzati solo nell'albero Automazione interfaccia utente dopo essere visualizzati per la prima volta o solo mentre sono visibili.

Membri obbligatori per IExpandCollapseProvider

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

Membri obbligatori Tipo di membro Note
ExpandCollapseState Proprietà Nessuno
Espandere Metodo Nessuno
Comprimi Metodo Nessuno
IUIAutomationPropertyChangedEventHandler Evento Questo controllo non ha eventi associati; usare questo gestore eventi generico.

 

Tipi di controllo e modelli di controllo supportati

Cenni preliminari sui pattern di controllo per l'automazione interfaccia utente

Panoramica dell'albero di automazione dell'interfaccia utente