Właściwości zdarzeń automatyzacji interfejsu użytkownika dla klientów

Uwaga

Ta dokumentacja jest przeznaczona dla deweloperów programu .NET Framework, którzy chcą używać zarządzanych klas automatyzacja interfejsu użytkownika zdefiniowanych w System.Windows.Automation przestrzeni nazw. Aby uzyskać najnowsze informacje na temat automatyzacja interfejsu użytkownika, zobacz Interfejs API usługi Windows Automation: automatyzacja interfejsu użytkownika.

W tym temacie opisano, jak zdarzenia automatyzacja interfejsu użytkownika firmy Microsoft są używane przez klientów automatyzacja interfejsu użytkownika.

automatyzacja interfejsu użytkownika umożliwia klientom subskrybowanie interesujących zdarzeń. Ta funkcja zwiększa wydajność, eliminując potrzebę ciągłego sondowania wszystkich elementów interfejsu użytkownika w systemie, aby sprawdzić, czy jakiekolwiek informacje, struktura lub stan uległy zmianie.

Wydajność jest również lepsza dzięki możliwości nasłuchiwania zdarzeń tylko w zdefiniowanym zakresie. Na przykład klient może nasłuchiwać zdarzeń zmiany fokusu na wszystkich automatyzacja interfejsu użytkownika elementach drzewa lub tylko w jednym elemencji i jego elementach podrzędnych.

Uwaga

Nie zakładaj, że wszystkie możliwe zdarzenia są zgłaszane przez dostawcę automatyzacja interfejsu użytkownika firmy Microsoft. Na przykład nie wszystkie zmiany właściwości powodują wywoływanie zdarzeń przez standardowych dostawców serwera proxy dla kontrolek Windows Forms i Win32.

Aby uzyskać szerszy widok zdarzeń automatyzacja interfejsu użytkownika, zobacz omówienie zdarzeń automatyzacja interfejsu użytkownika.

Subskrybowanie zdarzeń

Aplikacje klienckie subskrybują zdarzenia określonego rodzaju, rejestrując procedurę obsługi zdarzeń przy użyciu jednej z następujących metod.

Method Typ zdarzenia Typ argumentów zdarzeń Typ delegata
AddAutomationFocusChangedEventHandler Zmiana fokusu AutomationFocusChangedEventArgs AutomationFocusChangedEventHandler
AddAutomationPropertyChangedEventHandler Zmiana właściwości AutomationPropertyChangedEventArgs AutomationPropertyChangedEventHandler
AddStructureChangedEventHandler Zmiana struktury StructureChangedEventArgs StructureChangedEventHandler
AddAutomationEventHandler Wszystkie inne zdarzenia zidentyfikowane przez element AutomationEvent AutomationEventArgs lub WindowClosedEventArgs AutomationEventHandler

Przed wywołaniem metody należy utworzyć metodę delegata do obsługi zdarzenia. Jeśli wolisz, możesz obsłużyć różne rodzaje zdarzeń w jednej metodzie i przekazać tę metodę w wielu wywołaniach do jednej z metod w tabeli. Na przykład można skonfigurować pojedynczy element AutomationEventHandler w celu obsługi różnych zdarzeń w inny sposób zgodnie z .EventId

Uwaga

Aby przetworzyć zdarzenia zamknięte w oknie, należy rzutować typ argumentu, który jest przekazywany do programu obsługi zdarzeń jako WindowClosedEventArgs. Ponieważ element microsoft automatyzacja interfejsu użytkownika dla okna nie jest już prawidłowy, nie można użyć parametru sender do pobrania informacji; zamiast tego użyj polecenia GetRuntimeId .

Uwaga

Jeśli aplikacja może odbierać zdarzenia z własnego interfejsu użytkownika, nie używaj wątku interfejsu użytkownika aplikacji do subskrybowania zdarzeń ani anulowania subskrypcji. Może to prowadzić do nieprzewidywalnego zachowania. Aby uzyskać więcej informacji, zobacz automatyzacja interfejsu użytkownika Problemy z wątkami.

Po zamknięciu lub gdy zdarzenia automatyzacja interfejsu użytkownika nie są już interesujące dla aplikacji, automatyzacja interfejsu użytkownika klienci powinni wywołać jedną z następujących metod.

Metoda opis
RemoveAutomationEventHandler Wyrejestrowuje procedurę obsługi zdarzeń zarejestrowaną przy użyciu polecenia AddAutomationEventHandler.
RemoveAutomationFocusChangedEventHandler Wyrejestrowuje procedurę obsługi zdarzeń zarejestrowaną przy użyciu polecenia AddAutomationFocusChangedEventHandler.
RemoveAutomationPropertyChangedEventHandler Wyrejestrowuje procedurę obsługi zdarzeń zarejestrowaną przy użyciu polecenia AddAutomationPropertyChangedEventHandler.
RemoveAllEventHandlers Wyrejestrowuje wszystkie zarejestrowane programy obsługi zdarzeń.

Na przykład kod można znaleźć w temacie Subskrybowanie zdarzeń automatyzacja interfejsu użytkownika.

Zobacz też