Implementieren des Invoke-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 IInvokeProvider, einschließlich Informationen über Ereignisse und Eigenschaften. Links zu zusätzlichen Referenzen sind am Ende dieses Themas aufgelistet.

Das InvokePattern -Steuerelementmuster wird dazu verwendet, Steuerelemente zu unterstützen, deren Zustand nicht verwaltet wird, wenn sie aktiviert werden, sondern die nur eine einzelne, eindeutige Aktion initiieren oder ausführen Steuerelemente, deren Zustand verwaltet wird (etwa Kontrollkästchen und Optionsfelder), müssen stattdessen IToggleProvider bzw. ISelectionItemProvider implementieren. Beispiele für Steuerelemente, die das Invoke-Steuerelementmuster implementieren, finden Sie unter Control Pattern Mapping for UI Automation Clients.

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 dieselbe Aktion wie die Expand - oder die Collapse -Methode ausführt, darf IInvokeProvidernicht für das Steuerelement implementiert werden.

  • Ein Steuerelement wird normalerweise durch Klicken, Doppelklicken, Drücken der EINGABETASTE oder durch eine vordefinierte oder alternative Tastenkombination aufgerufen.

  • Für ein Steuerelement, das aktiviert wurde, wirdInvokedEvent ausgelöst (als Reaktion auf ein Steuerelement, das seine zugehörige Aktion ausführt). 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 die Invoke-Anforderung verarbeitet wird:

    • Es ist nicht möglich oder zweckmäßig, bis zum Abschluss der Aktion zu warten.

    • Die Aktion erfordert eine Benutzeraktion.

    • 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 über die HelpText -Eigenschaft mitgeteilt werden. Beispielsweise kann Invoke bewirken, das ein anderes Steuerelement ausgewählt wird, obwohl Invoke nicht mit Auswahlverhalten verknüpft ist.

  • Hovereffekte (oder Mouseovereffekte) sind im Allgemeinen kein Grund für ein Invoked-Ereignis. Jedoch sollten Steuerelemente, die auf Basis des Hoverzustands eine Aktion ausfü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 als Ergebnis eines mausbezogenen Nebeneffekts 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 eines Listenelements eines Microsoft Word-Dokuments im Ordner „Eigene Dateien“ sowohl das Element ausgewählt als auch das Dokument geöffnet.

  • Ein Element kann, wenn es aufgerufen wird, sofort aus der UI Automatisierungsstruktur ausgeblendet werden. Dies kann zur Folge haben, dass das Anfordern von Informationen von dem Element, die durch den Ereignisrückruf bereitgestellt werden, fehlschlägt. Als Problemlösung wird empfohlen, zwischengespeicherte Informationen vorab abzurufen.

  • Steuerelemente können mehrere Steuerelementmuster implementieren. Das Steuerelement Füllfarbe in der Microsoft Excel-Symbolleiste beispielsweise implementiert sowohl das InvokePattern- als auch das ExpandCollapsePattern-Steuermuster. DasExpandCollapsePattern macht das Menü verfügbar, und das I InvokePattern füllt die aktive Auswahl mit der ausgewählten Farbe.

Erforderliche Member für IInvokeProvider

Die folgenden Eigenschaften und Methoden sind für das Implementieren von IInvokeProvidererforderlich.

Erforderliche Member Memberart Hinweise
Invoke Methode Invoke ist ein asynchroner Aufruf und muss die Kontrolle sofort zurückgeben, ohne zu blockieren.

Dieses Verhalten ist insbesondere für Steuerelemente wichtig, die direkt oder indirekt ein modales Dialogfeld starten, wenn sie aufgerufen werden. Jeder Benutzeroberflächenautomatisierungs-Client, der das Ereignis ausgelöst hat, bleibt blockiert, bis das modale Dialogfeld geschlossen wird.

Ausnahmen

Anbieter müssen die folgenden Ausnahmen auslösen.

Ausnahmetyp Bedingung
ElementNotEnabledException Wenn das Steuerelement nicht aktiviert ist.

Siehe auch