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