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.