Share via


ExpandCollapse-Steuerelementmuster

Beschreibt Richtlinien und Konventionen für die Implementierung von IExpandCollapseProvider, einschließlich Informationen zu Eigenschaften, Methoden und Ereignissen. Das ExpandCollapse-Steuerelementmuster wird verwendet, um Steuerelemente zu unterstützen, die visuell erweitert werden, um mehr Inhalt anzuzeigen und zum Ausblenden von Inhalten zu reduzieren.

Beispiele für Steuerelemente, die dieses Steuerelementmuster implementieren, finden Sie unter Steuerelementtypen und deren unterstützte Steuerelementmuster.

Dieses Thema enthält folgende Abschnitte:

Implementierungsrichtlinien und -konventionen

Beachten Sie beim Implementieren des ExpandCollapse-Steuerelementmusters die folgenden Richtlinien und Konventionen:

  • Aggregatsteuerelemente, die mit untergeordneten Objekten erstellt wurden, die die Benutzeroberfläche mit Erweitern/Reduzieren-Funktionen bereitstellen, müssen das ExpandCollapse-Steuerelementmuster unterstützen, ihre untergeordneten Elemente hingegen nicht. Beispielsweise wird ein Kombinationsfeld-Steuerelement mit einer Kombination aus Listenfeld-, Schaltflächen- und Bearbeitungssteuerelementen erstellt, aber es ist nur das übergeordnete Kombinationsfeld, das das ExpandCollapse-Steuerelementmuster unterstützen muss.

    Hinweis

    Eine Ausnahme ist das Menüsteuerelement, das ein Aggregat einzelner Menüelementobjekte ist. Die Menüelementobjekte können das ExpandCollapse-Steuerelementmuster unterstützen, das übergeordnete Menüsteuerelement jedoch nicht. Eine ähnliche Ausnahme gilt für die Struktur- und Strukturelementsteuerelemente.

     

  • Wenn IExpandCollapseProvider::ExpandCollapseState eines Steuerelements auf ExpandCollapseState_LeafNode festgelegt ist, ist jede ExpandCollapse-Funktionalität für das Steuerelement derzeit inaktiv, und die einzigen Informationen, die mit diesem Steuerelementmuster abgerufen werden können, ist ExpandCollapseState. Wenn anschließend untergeordnete Objekte hinzugefügt werden, ändert sich die ExpandCollapseState-Funktion , und die ExpandCollapse-Funktionalität wird aktiviert.

  • ExpandCollapseState bezieht sich nur auf die Sichtbarkeit von unmittelbar untergeordneten Objekten. Es bezieht sich nicht auf die Sichtbarkeit aller nachfolgerfähigen Objekte.

  • Die Funktionen "IExpandCollapseProvider::Expand" und "Collapse" sind steuerelementspezifisch. Im Folgenden finden Sie Beispiele dieses Verhaltens.

    • Das Persönliche Office-Menü kann ein Menüelement mit drei Status ("Erweitert", "Reduziert" und "TeilweiseExpanded") sein, in dem das Steuerelement den Zustand angibt, der übernommen werden soll, wenn Erweitern oder Reduzieren aufgerufen wird.
    • Wenn Sie Expand für ein Strukturelement aufrufen, werden möglicherweise alle Nachfolger oder nur unmittelbar untergeordnete Elemente angezeigt.
    • Wenn der Aufruf von Expand oder Collapse für ein Steuerelement den Zustand seiner Nachfolger beibehält, sollte ein Sichtbarkeitsänderungsereignis und kein Zustandsänderungsereignis gesendet werden. Wenn das übergeordnete Steuerelement den Zustand seiner Nachfolger beim Reduzieren nicht bei behält, zerstört das Steuerelement möglicherweise alle Nachfolger, die nicht mehr sichtbar sind, und löst ein zerstörtes Ereignis aus. Oder es kann expandCollapseState für jeden Nachfolger ändern und ein Sichtbarkeitsänderungsereignis auslösen.
  • Um die Navigation zu gewährleisten, ist es wünschenswert, dass sich ein Objekt unabhängig von seinem übergeordneten ExpandCollapseState-Element in der Microsoft Benutzeroberflächenautomatisierung-Struktur (mit entsprechendem Sichtbarkeitszustand) befindet. Wenn Nachfolger bedarfsgesteuert generiert werden, werden sie möglicherweise nur dann in der UI Automatisierungsstruktur angezeigt, nachdem sie das erste Mal angezeigt wurden, oder nur während sie sichtbar sind.

Erforderliche Elemente für IExpandCollapseProvider

Die folgenden Eigenschaften, Methoden und Ereignisse sind für die Implementierung der IExpandCollapseProvider-Schnittstelle erforderlich.

Erforderliche Member Memberart Hinweise
Expandcollapsestate Eigenschaft Keine
Expand Methode Keine
Reduzieren Methode Keine
IUIAutomationPropertyChangedEventHandler Ereignis Diesem Steuerelement sind keine Ereignisse zugeordnet. verwenden Sie diesen generischen Ereignishandler.

 

Steuerelementtypen und deren unterstützte Steuerelementmuster

Übersicht über Steuerelementmuster für Benutzeroberflächenautomatisierung

Übersicht über die Benutzeroberflächenautomatisierungs-Struktur