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


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

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

Эта документация предназначена для разработчиков на платформе .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 см. в разделе Обзор событий автоматизации пользовательского интерфейса.

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

  • Подписка на события
  • Связанные разделы

Подписка на события

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

Метод

Тип события

Тип аргументов события

Тип делегата

AddAutomationFocusChangedEventHandler

Изменение фокуса

AutomationFocusChangedEventArgs

AutomationFocusChangedEventHandler

AddAutomationPropertyChangedEventHandler

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

AutomationPropertyChangedEventArgs

AutomationPropertyChangedEventHandler

AddStructureChangedEventHandler

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

StructureChangedEventArgs

StructureChangedEventHandler

AddAutomationEventHandler

Все другие события, определяемые в классе AutomationEvent

AutomationEventArgs или WindowClosedEventArgs

AutomationEventHandler

Перед вызовом метода необходимо создать метод делегата для обработки события. При необходимости можно обрабатывать различные типы событий в одном методе и передавать этот метод нескольким вызовам одного из методов в таблице. Например, один объект AutomationEventHandler может использоваться для обработки различных событий разными методами в соответствии со значением свойства EventId.

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

Чтобы обработать события закрытия окна, приведите тип аргумента, который передается обработчику событий, к типу WindowClosedEventArgs.Поскольку элемент Microsoft UI Automation для окна больше не является допустимым, параметр sender нельзя использовать для получения сведений. Вместо этого следует использовать метод GetRuntimeId.

Предупреждающее замечаниеВнимание

Если в приложении поддерживается получение событий от собственного UI, не используйте поток UI приложения для подписки или отмены подписки на события.Это может привести к непредсказуемому поведению.Дополнительные сведения см. в разделе Проблемы потока модели автоматизация пользовательского интерфейса.

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

Метод

Описание

RemoveAutomationEventHandler

Отмена регистрации обработчика событий, который зарегистрирован с помощью метода AddAutomationEventHandler.

RemoveAutomationFocusChangedEventHandler

Отмена регистрации обработчика событий, который зарегистрирован с помощью метода AddAutomationFocusChangedEventHandler.

RemoveAutomationPropertyChangedEventHandler

Отмена регистрации обработчика событий, который зарегистрирован с помощью метода AddAutomationPropertyChangedEventHandler.

RemoveAllEventHandlers

Отмена регистрации всех зарегистрированных обработчиков событий.

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

См. также

Задачи

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

TrackFocus Sample

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

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

Общие сведения о свойствах автоматизированного пользовательского интерфейса