Implementieren des ExpandCollapse-Steuerelementmusters der BenutzeroberflächenautomatisierungImplementing the UI Automation ExpandCollapse Control Pattern

Hinweis

Diese Dokumentation ist für .NET Framework-Entwickler vorgesehen, die die verwalteten BenutzeroberflächenautomatisierungUI Automation-Klassen verwenden möchten, die im System.Windows.Automation-Namespace definiert sind.This documentation is intended for .NET Framework developers who want to use the managed BenutzeroberflächenautomatisierungUI Automation classes defined in the System.Windows.Automation namespace. Die neuesten Informationen zu BenutzeroberflächenautomatisierungUI Automation, finden Sie unter Windows-Automatisierungs-API: Benutzeroberflächenautomatisierung.For the latest information about BenutzeroberflächenautomatisierungUI Automation, see Windows Automation API: UI Automation.

Dieses Thema enthält Richtlinien und Konventionen für das Implementieren von IExpandCollapseProvider, einschließlich Informationen über Eigenschaften, Methoden und Ereignissen.This topic introduces guidelines and conventions for implementing IExpandCollapseProvider, including information about properties, methods, and events. Links zu zusätzlichen Referenzen sind am Ende dieser Übersicht aufgelistet.Links to additional references are listed at the end of the overview.

Das ExpandCollapsePattern -Steuerelementmuster dient zur Unterstützung von Steuerelementen, die für das Anzeigen von mehr Inhalt erweitert bzw. für das Ausblenden von Inhalt reduziert werden.The ExpandCollapsePattern control pattern is used to support controls that visually expand to display more content and collapse to hide content. Beispiele für Steuerelemente, die dieses Steuerelementmuster implementieren, finden Sie unter Control Pattern Mapping for UI Automation Clients.For examples of controls that implement this control pattern, see Control Pattern Mapping for UI Automation Clients.

Implementierungsrichtlinien und -konventionenImplementation Guidelines and Conventions

Beachten Sie beim Implementieren des „ExpandCollapse“-Steuerelementmusters die folgenden Richtlinien und Konventionen:When implementing the ExpandCollapse control pattern, note the following guidelines and conventions:

  • Aggregierte Steuerelemente (mit untergeordneten Objekten erstellt, die die Benutzeroberfläche mit Funktionen zum Erweitern/Reduzieren bereitstellen) müssen das ExpandCollapsePattern -Steuerelementmuster unterstützen, während deren untergeordnete Elemente dies nicht müssen.Aggregate controls—built with child objects that provide the UI with expand/collapse functionality—must support the ExpandCollapsePattern control pattern whereas their child elements do not. Beispielsweise wird ein Kombinationsfeld-Steuerelement mit einer Kombination aus einem Listenfeld, einer Schaltfläche und Bearbeitungssteuerelementen erstellt, aber es handelt es sich nur um das übergeordnete Kombinationsfeld, das ExpandCollapsePatternunterstützen muss.For example, a combo box control is built with a combination of list box, button, and edit controls, but it is only the parent combo box that must support the ExpandCollapsePattern.

    Hinweis

    Eine Ausnahme stellt das Menüsteuerelement dar. Hierbei handelt es sich um ein Aggregat von einzelnen „MenuItem“-Objekten.An exception is the menu control, which is an aggregate of individual MenuItem objects. Die „MenuItem“-Objekte können das ExpandCollapsePattern -Steuerelementmuster unterstützen, das übergeordnete Menüsteuerelement ist dazu jedoch nicht in der Lage.The MenuItem objects can support the ExpandCollapsePattern control pattern, but the parent Menu control cannot. Eine ähnliche Ausnahme gilt für die Gesamtstruktur- und Gesamtstrukturelement-Steuerelemente.A similar exception applies to the Tree and Tree Item controls.

  • Wenn der ExpandCollapseState eines Steuerelements auf LeafNodefestgelegt ist, sind die ExpandCollapsePattern -Funktionalitäten aktuell inaktiv für das Steuerelement, und ExpandCollapseStatesind die einzigen Informationen, die mithilfe dieses Steuerelementmusters abgerufen werden können.When the ExpandCollapseState of a control is set to LeafNode, any ExpandCollapsePattern functionality is currently inactive for the control and the only information that can be obtained using this control pattern is the ExpandCollapseState. Wenn untergeordnete Objekte später hinzugefügt werden, wird ExpandCollapseState geändert, und die ExpandCollapsePattern -Funktionalität wird aktiviert.If any child objects are subsequently added, the ExpandCollapseState changes and ExpandCollapsePattern functionality is activated.

  • ExpandCollapseState verweist nur auf die Sichtbarkeit der unmittelbaren untergeordneten Objekte und nicht auf die Sichtbarkeit sämtlicher Nachfolgerobjekte.ExpandCollapseState refers to the visibility of immediate child objects only; it does not refer to the visibility of all descendant objects.

  • Die Funktionalität zum Erweitern und Reduzieren ist steuerelementspezifisch.Expand and Collapse functionality is control-specific. Im Folgenden finden Sie Beispiele dieses Verhaltens.The following are examples of this behavior.

    • Das persönliche Office-Menü kann ein aus drei Status bestehendes „MenuItem“ (Expanded, Collapsed und PartiallyExpanded) sein, wobei das Steuerelement den zu verwendenden Status angibt, wenn eine Expand - oder Collapse -Funktion aufgerufen wird.The Office Personal Menu can be a tri-state MenuItem (Expanded, Collapsed and PartiallyExpanded) where the control specifies the state to adopt when an Expand or Collapse is called.

    • Durch das Aufrufen von Expand in einem „TreeItem“ werden möglicherweise alle Nachfolger oder nur das unmittelbar untergeordnete Element angezeigt.Calling Expand on a TreeItem may display all descendants or only immediate children.

    • Durch das Aufrufen von Expand oder Collapse in einem Steuerelement wird der Status der entsprechenden Nachfolger beibehalten, es sollte ein Sichtbarkeitsänderungsereignis gesendet werden und kein Statusänderungsereignis. Wenn das übergeordnete Steuerelement den Status seiner Nachfolger nicht beibehalten kann, wenn es reduziert ist, zerstört das Steuerelement möglicherweise alle Nachfolger, die nicht mehr sichtbar sind und löst ein Ereignis über eine Zerstörung aus oder es ändert ExpandCollapseState für jeden Nachfolger und löst ein Sichtbarkeitsänderungsereignis aus.If calling Expand or Collapse on a control maintains the state of its descendants, a visibility change event should be sent, not a state change event If the parent control does not maintain the state of its descendants when collapsed, the control may destroy all the descendants that are no longer visible and raise a destroyed event; or it may change the ExpandCollapseState for each descendant and raise a visibility change event.

  • Zum Garantieren der Navigation ist es für ein Objekt wünschenswert, wenn es sich in der BenutzeroberflächenautomatisierungUI Automation -Gesamtstruktur (mit dem entsprechenden Sichtbarkeitsstatus) befindet, und zwar unabhängig von seinen übergeordneten ExpandCollapseState.To guarantee navigation, it is desirable for an object to be in the BenutzeroberflächenautomatisierungUI Automation tree (with appropriate visibility state) regardless of its parents ExpandCollapseState. Wenn Nachfolger bedarfsgesteuert generiert werden, werden sie möglicherweise nur dann in der BenutzeroberflächenautomatisierungUI Automation -Gesamtstruktur angezeigt, nachdem sie das erste Mal angezeigt wurden, oder nur während sie sichtbar sind.If descendants are generated on demand, they may only appear in the BenutzeroberflächenautomatisierungUI Automation tree after being displayed for the first time or only while they are visible.

Erforderliche Member für „IExpandCollapseProvider“Required Members for IExpandCollapseProvider

Die folgenden Eigenschaften und Methoden sind für das Implementieren von IExpandCollapseProvidererforderlich.The following properties and methods are required for implementing IExpandCollapseProvider.

Erforderliche MemberRequired members MemberartMember type HinweiseNotes
ExpandCollapseState EigenschaftProperty KeinerNone
Expand MethodeMethod KeinerNone
Collapse MethodeMethod KeinerNone
AutomationPropertyChangedEventHandler eventEvent Dieses Steuerelement verfügt über keine zugeordneten Ereignisse. Verwenden Sie diesen generischen Delegaten.This control has no associated events; use this generic delegate.

AusnahmenExceptions

Anbieter müssen die folgenden Ausnahmen auslösen.Providers must throw the following exceptions.

AusnahmetypException type BedingungCondition
InvalidOperationException Es wird Expand - oder Collapse aufgerufen, wenn ExpandCollapseState = LeafNode.Either Expand or Collapse is called when the ExpandCollapseState = LeafNode.

Siehe auchSee also