Implementieren des Invoke-Steuerelementmusters der Benutzeroberflächenautomatisierung
Hinweis |
---|
Diese Dokumentation ist für .NET Framework-Entwickler vorgesehen, die die verwalteten UI Automation-Klassen verwenden möchten, die im System.Windows.Automation-Namespace definiert sind.Aktuelle Informationen zu UI Automation finden Sie unter Windows Automation API: UI Automation. |
In diesem Thema werden Richtlinien und Konventionen zum Implementieren von IInvokeProvider vorgestellt sowie Ereignisse und Eigenschaften erläutert. Am Ende des Themas finden Sie Links zu zusätzlichen Verweisen.
Das InvokePattern-Steuerelementmuster wird zur Unterstützung von Steuerelementen verwendet, deren Zustand bei der Aktivierung nicht gespeichert wird, sondern die nur eine einzelne, eindeutige Aktion initiieren oder durchführen. Steuerelemente, deren Zustand gespeichert wird (z. B. Kontrollkästchen und Optionsfelder), müssen stattdessen IToggleProvider bzw. ISelectionItemProvider implementieren. Beispiele für Steuerelemente, die das Invoke-Steuerelementmuster implementieren, finden Sie unter Zuordnen von Steuerelementmustern für Benutzeroberflächenautomatisierungs-Clients.
Dieses Thema enthält folgende Abschnitte.
- Implementierungsrichtlinien und Konventionen
- Erforderliche Member für IInvokeProvider
- Ausnahmen
- Verwandte Abschnitte
Implementierungsrichtlinien und Konventionen
Beachten Sie beim Implementieren des Invoke-Steuerelementmusters die folgenden Richtlinien und Konventionen:
Steuerelemente implementieren IInvokeProvider, wenn das gleiche Verhalten nicht durch einen anderen Steuerelementmuster-Anbieter verfügbar gemacht wird. Wenn die Invoke-Methode eines Steuerelements beispielsweise die gleiche Aktion wie die Expand-Methode oder die Collapse-Methode ausführt, darf das Steuerelement IInvokeProvider nicht implementieren.
Ein Steuerelement wird im Allgemeinen durch Klicken, Doppelklicken, Drücken der EINGABETASTE oder durch eine vordefinierte oder alternative Tastenkombination aufgerufen.
Für ein Steuerelement, das aktiviert wurde, wird InvokedEvent (als Reaktion auf ein Steuerelement, das seine zugehörige Aktion ausführt) ausgelöst. Sofern möglich, sollte das Ereignis ausgelöst werden, nachdem das Steuerelement die Aktion abgeschlossen hat und ohne Blockierung zurückgekehrt ist. In den folgenden Szenarien sollte das Invoked-Ereignis ausgelöst werden, bevor der eigentliche Aufruf behandelt wird:
Es ist nicht möglich oder nicht praktikabel, bis zum Abschluss der Aktion zu warten.
Die Aktion erfordert einen Benutzereingriff.
Die Aktion ist zeitaufwändig und führt dazu, dass der aufrufende Client für einen längeren Zeitraum blockiert wird.
Wenn das Aufrufen des Steuerelements größere Nebeneffekte hat, sollten diese Nebeneffekte in der HelpText-Eigenschaft angegeben werden. Beispielsweise wird Invoke zwar nicht mit einer Auswahl assoziiert, möglicherweise kann durch Invoke jedoch ein anderes Steuerelement ausgewählt werden.
Hovereffekte (oder Mouseovereffekte) sind im Allgemeinen kein Grund für ein Invoked-Ereignis. Jedoch sollten Steuerelemente, die auf Grundlage des Hoverzustands eine Aktion durchführen (im Gegensatz zum Verursachen eines visuellen Effekts), das InvokePattern-Steuerelementmuster unterstützen.
Hinweis |
---|
Diese Implementierung wird als Problem für Barrierefreiheit betrachtet, wenn das Steuerelement nur über einen mausbezogenen Nebeneffekt aufgerufen werden kann. |
Das Aufrufen eines Steuerelements unterscheidet sich vom Auswählen eines Elements. Abhängig vom Steuerelement kann das Aufrufen jedoch möglicherweise den Nebeneffekt haben, dass das Element ausgewählt wird. Beispielsweise wird beim Aufrufen des Listenelements eines Microsoft Word-Dokuments im Ordner "Eigene Dateien" sowohl das Element ausgewählt als auch das Dokument geöffnet.
Ein Element kann beim Aufruf sofort aus der UI Automation-Struktur ausgeblendet werden. Dadurch kann das Anfordern von Informationen von dem durch den Ereignisrückruf bereitgestellten Element möglicherweise fehlschlagen. Als Problemlösung wird empfohlen, zwischengespeicherte Informationen vorab abzurufen.
Steuerelemente können mehrere Steuerelementmuster implementieren. Beispielsweise implementiert das Füllfarbe-Steuerelement auf der Microsoft Excel-Symbolleiste das InvokePattern-Steuerelementmuster und das ExpandCollapsePattern-Steuerelementmuster. Das ExpandCollapsePattern macht das Menü verfügbar, und das InvokePattern füllt die aktive Auswahl mit der ausgewählten Farbe.
Erforderliche Member für IInvokeProvider
Zum Implementieren von IInvokeProvider werden die folgenden Eigenschaften und Methoden benötigt.
Erforderliche Member |
Membertyp |
Hinweise |
---|---|---|
method |
Invoke ist ein asynchroner Aufruf und muss sofort ohne Blockierung ein Ergebnis zurückgeben. Dieses Verhalten ist insbesondere für Steuerelemente wichtig, die beim Aufrufen direkt oder indirekt ein modales Dialogfeld starten. Jeder Benutzeroberflächenautomatisierungs-Client, der das Ereignis veranlasst, bleibt blockiert, bis das modale Dialogfeld geschlossen wird. |
Ausnahmen
Anbieter müssen die folgenden Ausnahmen auslösen.
Ausnahmetyp |
Bedingung |
---|---|
Wenn das Steuerelement nicht aktiviert ist. |
Siehe auch
Aufgaben
Unterstützung von Steuerelementmustern in einem Benutzeroberflächenautomatisierungs-Anbieter
Aufrufen eines Steuerelements mithilfe von Benutzeroberflächenautomatisierung
Verwenden der Zwischenspeicherung in der Benutzeroberflächenautomatisierung
Konzepte
Übersicht über Steuerelementmuster für Benutzeroberflächenautomatisierung
Steuerelementmuster für Benutzeroberflächenautomatisierung für Clients
Übersicht über die Benutzeroberflächenautomatisierungs-Struktur