Обзор событий автоматизации пользовательского интерфейса
Примечание |
---|
Эта документация предназначена для разработчиков на платформе .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 приводятся в следующей таблице вместе с типом, используемым для аргументов событий. Обратите внимание, что идентификаторы, используемые клиентами и поставщиками, идентичны именованным полям из различных классов.
Аргументы событий автоматизации пользовательского интерфейса
Следующие классы инкапсулируют аргументы событий.
Класс |
Описание |
---|---|
Содержит сведения об асинхронной загрузке содержимого, включая процент завершения загрузки. |
|
Содержит сведения о простом событии, не требующем дополнительных данных. |
|
Содержит сведения о переходе фокуса ввода с одного элемента на другой. События этого типа вызываются системой UI Automation, а не поставщиками. |
|
Содержит сведения об изменении значения свойства элемента или шаблона элемента управления. |
|
Содержит сведения об изменении в дереве UI Automation. |
|
Содержит сведения о закрытии окна. |
Все классы аргументов событий содержат член EventId. Этот идентификатор инкапсулируется в объекте AutomationEvent.
Объекты AutomationEvent, используемые для идентификации событий, получаются поставщиками из полей AutomationElementIdentifiers и классов идентификаторов шаблонов элементов управления, таких как DockPatternIdentifiers. Эквивалентные поля извлекаются клиентскими приложениями из полей AutomationElement и классов шаблонов элементов управления, таких как DockPattern.
Список идентификаторов событий содержится в разделе События модели автоматизации пользовательского интерфейса для клиентов.
См. также
Задачи
Подписка на события модели автоматизации пользовательского интерфейса
Основные понятия
События модели автоматизации пользовательского интерфейса для клиентов
Реализация поставщика автоматизации пользовательского интерфейса на стороне сервера