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


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

ПримечаниеПримечание

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

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

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

В этом разделе содержатся следующие подразделы.

  • Типы событий
  • Идентификаторы событий автоматизации пользовательского интерфейса
  • Аргументы событий автоматизации пользовательского интерфейса
  • Связанные разделы

Типы событий

События UI Automation делятся на следующие категории.

Событие

Описание

Изменение свойства

Возникает, когда изменяется свойство элемента UI Automation или шаблона элемента управления. Например, если клиент должен отслеживать элемент управления "флажок" в приложении, он может зарегистрировать прослушивание событий изменения свойства ToggleState. При установке и снятии флажка поставщик создает событие, и клиент может выполнять требуемые действия.

Действие элемента

Создается при изменении в UI, вызванном конечным пользователем или действием программы; например, если кнопка нажимается конечным пользователем или вызывается через объект InvokePattern.

Изменение структуры

Создается при изменении структуры дерева UI Automation. Структура изменяется, когда новые элементы UI становятся видимыми, скрытыми или удаляются с рабочего стола.

Глобальное изменение рабочего стола

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

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

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

  • AutomationPropertyChangedEvent (в зависимости от свойства, которое было изменено)

  • ElementSelectedEvent

  • InvalidatedEvent

  • TextChangedEvent

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

События Microsoft UI Automation идентифицируются объектами 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

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

AutomationPropertyChangedEventArgs

Содержит сведения об изменении значения свойства элемента или шаблона элемента управления.

StructureChangedEventArgs

Содержит сведения об изменении в дереве UI Automation.

WindowClosedEventArgs

Содержит сведения о закрытии окна.

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

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

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

См. также

Задачи

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

Основные понятия

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

Реализация поставщика автоматизации пользовательского интерфейса на стороне сервера