В этом разделе описывается, как события Microsoft модель автоматизации пользовательского интерфейса используются клиентами модель автоматизации пользовательского интерфейса.
модель автоматизации пользовательского интерфейса позволяет клиентам подписываться на интересующие события. Эта возможность повышает производительность, устраняя необходимость постоянно опрашивать все элементы пользовательского интерфейса в системе, чтобы узнать, изменилась ли какая-либо информация, структура или состояние.
Эффективность также повышается благодаря возможности прослушивания событий только в заданной области. Например, клиент может прослушивать события изменения фокуса на всех модель автоматизации пользовательского интерфейса элементах дерева или только на одном элементе и его потомках.
Примечание
Не предполагайте, что все возможные события вызываются поставщиком microsoft модель автоматизации пользовательского интерфейса. Например, не все изменения свойств вызывают события, создаваемые стандартными поставщиками прокси-серверов для элементов управления Windows Forms и Win32.
Более широкое представление событий модель автоматизации пользовательского интерфейса см. в модель автоматизации пользовательского интерфейса обзоре событий.
Подписка на события
Клиентские приложения подписываются на события определенного типа, регистрируя обработчик событий с помощью одного из следующих методов.
Перед вызовом метода вы должны создать метод делегата для обработки события. При желании можно обрабатывать различные типы событий в одном методе и передавать этот метод в несколько вызовов одного из методов в таблице. Например, один AutomationEventHandler можно настроить для обработки различных событий по-разному, в зависимости от EventId.
Примечание
Чтобы обработать события закрытия окна, приведите тип аргумента, передаваемого в обработчик событий, к типу WindowClosedEventArgs. Так как элемент Microsoft модель автоматизации пользовательского интерфейса для окна больше не действителен, параметр нельзя использовать sender для получения сведений; используйте GetRuntimeId вместо этого.
Внимание!
Если приложение может получать события из собственного пользовательского интерфейса, не используйте поток пользовательского интерфейса приложения для подписки на события или отмену подписки. Это может привести к непредсказуемому поведению. Для получения дополнительной информации см. UI Automation Threading Issues.
При завершении работы или если события модель автоматизации пользовательского интерфейса больше не заинтересованы в приложении, модель автоматизации пользовательского интерфейса клиенты должны вызывать один из следующих методов.
Присоединитесь к серии встреч для создания масштабируемых решений искусственного интеллекта на основе реальных вариантов использования с другими разработчиками и экспертами.