Реализация шаблона элемента управления модели автоматизации пользовательского интерфейса Invoke
![]() |
---|
Эта документация предназначена для разработчиков на платформе .NET Framework, которым требуется использовать управляемые классы UI Automation, определенные в пространстве имен System.Windows.Automation.Последние сведения о UI Automation см. на веб-странице Windows Automation API: UI Automation. |
В этом разделе рассматриваются правила и соглашения по реализации IInvokeProvider, включая сведения о событиях и свойствах. Ссылки на дополнительные материалы перечислены в конце раздела.
Шаблон элемента управления InvokePattern используется для поддержки элементов управления, которые не поддерживают свое состояние при активации, а инициируют или выполняют одно однозначное действие. Элементы управления, которые сохраняют свое состояние (например флажки и переключатели), вместо этого должны реализовывать IToggleProvider и ISelectionItemProvider. Примеры элементов управления, реализующих шаблон элемента управления Invoke, см. в разделе Сопоставление шаблона элемента управления для клиентов автоматизации пользовательского интерфейса.
В этом разделе содержатся следующие подразделы.
- Правила и соглашения по реализации
- Необходимые элементы для IInvokeProvider
- Исключения
- Связанные разделы
Правила и соглашения по реализации
При реализации шаблона элементов управления Invoke обратите внимание на следующие правила и соглашения.
Элементы управления реализуют интерфейс IInvokeProvider, если то же самое поведение не доступно через другого поставщика шаблона элемента управления. Например, если метод Invoke элемента управления выполняет те же действия, что и методы Expand или Collapse, то элемент управления не должен реализовывать IInvokeProvider.
Вызов элемента управления обычно выполняется одинарным или двойным щелчком мыши или нажатием клавиши ВВОД, стандартного или другого сочетания клавиш.
InvokedEvent вызывается в активированном элементе управления (в ответ на выполнение элементом управления связанного действия). Если это возможно, событие должно вызываться после того, как элемент управления завершит действие и будет возвращен без блокировки. Событие Invoked должно быть вызвано перед обслуживанием запроса Invoke в следующих случаях:
Ожидание завершения действия невозможно или нецелесообразно.
Действие требует взаимодействия с пользователем.
Действие занимает много времени и приведет к блокировке клиента на продолжительное время.
Если вызов элемента управления имеет существенные побочные эффекты, то эти эффекты должны предоставляться через свойство HelpText. Например, несмотря на то, что Invoke не связан с выделением, Invoke может привести к выделению другого элемента.
Эффект наведения (при наведении мыши) обычно не составляет событие Invoked. В то же время элементы управления, выполняющие действие (т.е. не вызывающие визуальных эффектов) на основании состояния наведения мыши, должны поддерживать шаблон элемента управления InvokePattern.
![]() |
---|
Если элемент управления может быть вызван только в результате побочного эффекта, связанного с действиями мыши, то такая реализация считается проблемой специальных возможностей. |
Вызов элемента управления отличается от выбора элемента. Однако, в зависимости от элемента управления его вызов может вызвать выбор элемента в качестве побочного эффекта. Например, вызов элемента списка документов Microsoft Word в папке "Мои документы" одновременно выбирает элемент и открывает документ.
Элемент может исчезнуть из дерева UI Automation сразу же после вызова. При запросе информации из элемента, предоставленного обратным вызовом события, может произойти сбой. Для решения этой проблемы рекомендуется использовать предварительное кэширование информации.
Элемент управления может реализовывать несколько шаблонов элементов управления. Например, элемент управления Fill Color на панели инструментов Microsoft Excel реализует шаблоны элементов управления InvokePattern и ExpandCollapsePattern. ExpandCollapsePattern предоставляет меню, а InvokePattern заполняет активный выделенный фрагмент выбранным цветом.
Необходимые элементы для IInvokeProvider
Для реализации IInvokeProvider необходимы следующие свойства и методы.
Обязательные члены |
Тип члена |
Примечания |
---|---|---|
метод |
Метод Invoke вызывается асинхронно и должен возвращать управление немедленно, не блокируя работу приложения. Это особенно важно для элементов управления, которые прямо или косвенно загружают модальное диалоговое окно при вызове. Любой клиент автоматизации пользовательского интерфейса, сгенерировавший событие, будет заблокирован до тех пор, пока модальное диалоговое окно не будет закрыто. |
Исключения
Поставщики должны вызывать следующие исключения.
Тип исключения |
Атрибут Condition |
---|---|
Если элемент управления не включен. |
См. также
Задачи
Вызов элемента управления с помощью модели автоматизации пользовательского интерфейса
Использование кэширования в модели автоматизации пользовательского интерфейса
Основные понятия
Общие сведения о шаблонах элементов управления модели автоматизации пользовательского интерфейса
Шаблоны элементов управления модели автоматизации пользовательского интерфейса для клиентов
Общие сведения о дереве модели автоматизации пользовательского интерфейса