Поделиться через


Обзор событий автоматизации пользовательского интерфейса

Замечание

Эта документация предназначена для разработчиков .NET Framework, которые хотят использовать управляемые классы автоматизации пользовательского интерфейса, определенные в пространстве имен System.Windows.Automation. Последние сведения об автоматизации пользовательского интерфейса см. в разделе API автоматизации Windows: автоматизация пользовательского интерфейса.

Уведомление о событиях автоматизации интерфейса пользователя Microsoft — это ключевая функция для вспомогательных технологий, таких как средства чтения с экрана и экранные лупы. Эти клиенты службы автоматизации пользовательского интерфейса отслеживают события, создаваемые поставщиками автоматизации пользовательского интерфейса, когда что-то происходит в пользовательском интерфейсе и используют сведения для уведомления конечных пользователей.

Эффективность увеличивается за счет выборочной генерации событий в приложениях поставщиков, в зависимости от того, подписаны ли какие-либо клиенты на эти события, или вовсе не генерировать события, если ни один клиент не подключен к ним.

Типы событий

События автоматизации пользовательского интерфейса делятся на следующие категории.

Событие Описание
Изменение свойства Вызывается при изменении свойства элемента автоматизации пользовательского интерфейса или шаблона элемента управления. Например, если клиенту необходимо отслеживать флажок приложения, он может зарегистрироваться для прослушивания события изменения свойства ToggleState. Если флажок установлен или снят, поставщик вызывает событие, и клиент может действовать по мере необходимости.
Действие элемента Возникает при изменении пользовательского интерфейса в результате действий конечных пользователей или программных действий; например, когда кнопка нажимается или вызывается через InvokePattern.
Изменение структуры Вызывается при изменении структуры дерева автоматизации пользовательского интерфейса. Структура изменяется, когда новые элементы пользовательского интерфейса становятся видимыми, скрытыми или удаленными на рабочем столе.
Изменение глобального рабочего стола Возникает, когда возникают действия глобального интереса к клиенту, например при перемещении фокуса с одного элемента на другой или при закрытии окна.

Некоторые события не обязательно означают, что состояние пользовательского интерфейса изменилось. Например, если пользователь переключает фокус на поле ввода текста, а затем нажимает кнопку для обновления поля, TextChangedEvent возникает, даже если пользователь фактически не изменил текст. При обработке события может потребоваться для клиентского приложения проверить, изменилось ли что-либо, прежде чем принимать меры.

Следующие события могут возникать даже в том случае, если состояние пользовательского интерфейса не изменилось.

  • AutomationPropertyChangedEvent (в зависимости от измененного свойства)

  • ElementSelectedEvent

  • InvalidatedEvent

  • TextChangedEvent

Идентификаторы событий автоматизации пользовательского интерфейса

События автоматизации пользовательского интерфейса Майкрософт определяются объектами AutomationEvent . Свойство Id содержит значение, однозначно определяющее тип события.

Возможные значения Id приведены в следующей таблице, а также тип, используемый для аргументов событий. Обратите внимание, что идентификаторы, используемые клиентами и поставщиками, идентичны полям из разных классов.

Идентификатор клиента Идентификатор поставщика Тип аргументов событий
AutomationElement.AsyncContentLoadedEvent AutomationElementIdentifiers.AsyncContentLoadedEvent AsyncContentLoadedEventArgs
SelectionItemPattern.ElementAddedToSelectionEvent

SelectionItemPattern.ElementRemovedFromSelectionEvent

SelectionItemPattern.ElementSelectedEvent

SelectionPattern.InvalidatedEvent

InvokePattern.InvokedEvent

AutomationElement.LayoutInvalidatedEvent

AutomationElement.MenuClosedEvent

AutomationElement.MenuOpenedEvent

TextPattern.TextChangedEvent

TextPattern.TextSelectionChangedEvent

AutomationElement.ToolTipClosedEvent

AutomationElement.ToolTipOpenedEvent

WindowPattern.WindowOpenedEvent
SelectionItemPatternIdentifiers.ElementAddedToSelectionEvent

SelectionItemPatternIdentifiers.ElementRemovedFromSelectionEvent

SelectionItemPatternIdentifiers.ElementSelectedEvent

SelectionPatternIdentifiers.InvalidatedEvent

InvokePatternIdentifiers.InvokedEvent

AutomationElementIdentifiers.LayoutInvalidatedEvent

AutomationElementIdentifiers.MenuClosedEvent

AutomationElementIdentifiers.MenuOpenedEvent

TextPatternIdentifiers.TextChangedEvent

TextPatternIdentifiers.TextSelectionChangedEvent

AutomationElementIdentifiers.ToolTipClosedEvent

AutomationElementIdentifiers.ToolTipOpenedEvent

WindowPatternIdentifiers.WindowOpenedEvent
AutomationEventArgs
AutomationElement.AutomationFocusChangedEvent AutomationElementIdentifiers.AutomationFocusChangedEvent AutomationFocusChangedEventArgs
AutomationElement.AutomationPropertyChangedEvent AutomationElementIdentifiers.AutomationPropertyChangedEvent AutomationPropertyChangedEventArgs
AutomationElement.StructureChangedEvent AutomationElementIdentifiers.StructureChangedEvent StructureChangedEventArgs
WindowPattern.WindowClosedEvent WindowPatternIdentifiers.WindowClosedEvent WindowClosedEventArgs

Аргументы событий автоматизации пользовательского интерфейса

Следующие классы инкапсулируют аргументы событий.

Класс Описание
AsyncContentLoadedEventArgs Содержит сведения об асинхронной загрузке содержимого, включая процент завершения загрузки.
AutomationEventArgs Содержит сведения о простом событии, в котором не требуются дополнительные данные.
AutomationFocusChangedEventArgs Содержит сведения об изменении фокуса ввода с одного элемента на другой. События этого типа создаются системой автоматизации пользовательского интерфейса, а не поставщиками.
AutomationPropertyChangedEventArgs Содержит сведения об изменении значения свойства элемента или шаблона элемента управления.
StructureChangedEventArgs Содержит сведения об изменении дерева автоматизации пользовательского интерфейса.
WindowClosedEventArgs Содержит сведения о закрытии окна.

Все классы аргументов события содержат EventId элемент. Этот идентификатор инкапсулируется в объекте AutomationEvent.

Объекты AutomationEvent , используемые для идентификации событий, получаются поставщиками из полей в AutomationElementIdentifiers классах идентификаторов шаблонов и элементов управления, таких как DockPatternIdentifiers. Эквивалентные поля клиентские приложения получают из полей в AutomationElement и классах шаблонов элементов управления, таких как DockPattern.

Список идентификаторов событий см. в разделе "События автоматизации пользовательского интерфейса" для клиентов.

См. также