События модели автоматизации пользовательского интерфейса для клиентов
Примечание |
---|
Эта документация предназначена для разработчиков на платформе .NET Framework, которым требуется использовать управляемые классы UI Automation, определенные в пространстве имен System.Windows.Automation.Последние сведения о UI Automation см. на веб-странице Windows Automation API: UI Automation. |
В этом разделе описывается порядок использования событий Microsoft UI Automation клиентами модели автоматизации пользовательского интерфейса.
В UI Automation поддерживается подписка клиентов на необходимые им события. Это позволяет повысить производительность, устраняя необходимость постоянного опроса всех элементов UI в системе на предмет изменения их сведений, структуры или состояния.
Также повышается эффективность благодаря прослушиванию событий только в определенной области. Например, клиент может прослушивать события изменения фокуса для всех элементов UI Automation в дереве или только для одного элемента и его потомков.
Примечание |
---|
Не следует предполагать, что все возможные события вызываются поставщиком Microsoft UI Automation.Например, не все изменения свойств приводят к вызову событий стандартными прокси-поставщиками для элементов управления Windows Forms и Win32. |
Дополнительные сведения о событиях UI Automation см. в разделе Обзор событий автоматизации пользовательского интерфейса.
В этом разделе содержатся следующие подразделы.
- Подписка на события
- Связанные разделы
Подписка на события
Подписка клиентских приложений на события определенного типа осуществляется посредством регистрации обработчика событий с помощью одного из следующих методов.
Метод |
Тип события |
Тип аргументов события |
Тип делегата |
---|---|---|---|
Изменение фокуса |
|||
Изменение свойства |
|||
Изменение структуры |
|||
Все другие события, определяемые в классе AutomationEvent |
Перед вызовом метода необходимо создать метод делегата для обработки события. При необходимости можно обрабатывать различные типы событий в одном методе и передавать этот метод нескольким вызовам одного из методов в таблице. Например, один объект AutomationEventHandler может использоваться для обработки различных событий разными методами в соответствии со значением свойства EventId.
Примечание |
---|
Чтобы обработать события закрытия окна, приведите тип аргумента, который передается обработчику событий, к типу WindowClosedEventArgs.Поскольку элемент Microsoft UI Automation для окна больше не является допустимым, параметр sender нельзя использовать для получения сведений. Вместо этого следует использовать метод GetRuntimeId. |
Внимание |
---|
Если в приложении поддерживается получение событий от собственного UI, не используйте поток UI приложения для подписки или отмены подписки на события.Это может привести к непредсказуемому поведению.Дополнительные сведения см. в разделе Проблемы потока модели автоматизация пользовательского интерфейса. |
При завершении работы, а также в случае, когда в приложении больше не используются события UI Automation, в клиенте модели автоматизации пользовательского интерфейса следует вызвать один из следующих методов.
Метод |
Описание |
---|---|
Отмена регистрации обработчика событий, который зарегистрирован с помощью метода AddAutomationEventHandler. |
|
Отмена регистрации обработчика событий, который зарегистрирован с помощью метода AddAutomationFocusChangedEventHandler. |
|
Отмена регистрации обработчика событий, который зарегистрирован с помощью метода AddAutomationPropertyChangedEventHandler. |
|
Отмена регистрации всех зарегистрированных обработчиков событий. |
Пример кода см. в разделе Подписка на события модели автоматизации пользовательского интерфейса.
См. также
Задачи
Подписка на события модели автоматизации пользовательского интерфейса
Основные понятия
Обзор событий автоматизации пользовательского интерфейса
Общие сведения о свойствах автоматизированного пользовательского интерфейса