Implementieren des ExpandCollapse-Steuerelementmusters der Benutzeroberflächenautomatisierung
Hinweis
Diese Dokumentation ist für .NET Framework-Entwickler konzipiert, die die verwalteten Klassen zur Automatisierung der Benutzeroberfläche verwenden möchten, die im Namespace System.Windows.Automation definiert sind. Aktuelle Informationen zur Automatisierung der Benutzeroberfläche finden Sie auf der Seite zur Windows-Automatisierungs-API: Benutzeroberflächenautomatisierung.
Dieses Thema enthält Richtlinien und Konventionen für das Implementieren von IExpandCollapseProvider, einschließlich Informationen über Eigenschaften, Methoden und Ereignissen. Links zu zusätzlichen Referenzen sind am Ende dieser Übersicht aufgelistet.
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. Beispiele für Steuerelemente, die dieses Steuerelementmuster implementieren, finden Sie unter Control Pattern Mapping for UI Automation Clients.
Implementierungsrichtlinien und -konventionen
Beachten Sie beim Implementieren des „ExpandCollapse“-Steuerelementmusters die folgenden Richtlinien und Konventionen:
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. 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.
Hinweis
Eine Ausnahme stellt das Menüsteuerelement dar. Hierbei handelt es sich um ein Aggregat von einzelnen „MenuItem“-Objekten. Die „MenuItem“-Objekte können das ExpandCollapsePattern -Steuerelementmuster unterstützen, das übergeordnete Menüsteuerelement ist dazu jedoch nicht in der Lage. Eine ähnliche Ausnahme gilt für die Gesamtstruktur- und Gesamtstrukturelement-Steuerelemente.
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. Wenn untergeordnete Objekte später hinzugefügt werden, wird ExpandCollapseState geändert, und die ExpandCollapsePattern -Funktionalität wird aktiviert.
ExpandCollapseState verweist nur auf die Sichtbarkeit der unmittelbaren untergeordneten Objekte und nicht auf die Sichtbarkeit sämtlicher Nachfolgerobjekte.
Die Funktionalität zum Erweitern und Reduzieren ist steuerelementspezifisch. Im Folgenden finden Sie Beispiele dieses Verhaltens.
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.
Durch das Aufrufen von Expand in einem „TreeItem“ werden möglicherweise alle Nachfolger oder nur das unmittelbar untergeordnete Element angezeigt.
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.
Zum Garantieren der Navigation ist es für ein Objekt wünschenswert, wenn es sich in der UI Automatisierungsstruktur (mit dem entsprechenden Sichtbarkeitsstatus) befindet, und zwar unabhängig von seinen übergeordneten ExpandCollapseState. 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 Member für „IExpandCollapseProvider“
Die folgenden Eigenschaften und Methoden sind für das Implementieren von IExpandCollapseProvidererforderlich.
Erforderliche Member | Memberart | Hinweise |
---|---|---|
ExpandCollapseState | Eigenschaft | Keine |
Expand | Methode | Keine |
Collapse | Methode | Keine |
AutomationPropertyChangedEventHandler | Ereignis | Dieses Steuerelement verfügt über keine zugeordneten Ereignisse. Verwenden Sie diesen generischen Delegaten. |
Ausnahmen
Anbieter müssen die folgenden Ausnahmen auslösen.
Ausnahmetyp | Bedingung |
---|---|
InvalidOperationException | Es wird Expand - oder Collapse aufgerufen, wenn ExpandCollapseState = LeafNode. |
Siehe auch
- Übersicht über Steuerelementmuster für Benutzeroberflächenautomatisierung
- Unterstützung von Steuerelementmustern in einem Benutzeroberflächenautomatisierungs-Anbieter
- Steuerelementmuster für Benutzeroberflächenautomatisierung für Clients
- Navigieren zwischen Benutzeroberflächenautomatisierungs-Elementen mit TreeWalker
- Übersicht über die Benutzeroberflächenautomatisierungs-Struktur
- Verwenden der Zwischenspeicherung in der Benutzeroberflächenautomatisierung