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

Примечание.

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

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

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

Типы событий

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

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

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

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

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

  • ElementSelectedEvent

  • InvalidatedEvent

  • TextChangedEvent

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

События Microsoft модель автоматизации пользовательского интерфейса определяются объектами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

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

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

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

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

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

Список идентификаторов событий см. в разделе UI Automation Events for Clients.

См. также