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


Реализация шаблона выбора управляющего элемента автоматизации пользовательского интерфейса

Замечание

Эта документация предназначена для разработчиков .NET Framework, которые хотят использовать управляемые классы автоматизации пользовательского интерфейса, определенные в пространстве имен System.Windows.Automation. Последние сведения об автоматизации пользовательского интерфейса см. в разделе API автоматизации Windows: автоматизация пользовательского интерфейса.

В этом разделе приводятся рекомендации и соглашения о реализации ISelectionProvider, включая сведения о событиях и свойствах. Ссылки на дополнительные ссылки перечислены в конце раздела.

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

Рекомендации по реализации и соглашения

При реализации шаблона элемента управления "Выбор" обратите внимание на следующие рекомендации и соглашения:

  • Элементы управления, которые реализуют ISelectionProvider, позволяют выбрать один или несколько дочерних элементов. Например, поле списка, представление списка и представление дерева поддерживают несколько вариантов выбора, в то время как поле со списком, ползунок и группа переключателей поддерживают один выбор.

  • Элементы управления с минимальным, максимальным и непрерывным диапазоном, такими как элемент управления "Ползунок тома ", должны реализовываться IRangeValueProvider вместо ISelectionProvider.

  • Элементы управления с единственным выделением, которые управляют дочерними элементами управления, реализующими IRawElementProviderFragmentRoot, например, ползунок разрешения экрана в диалоговом окне "Свойства отображения" или элемент управления выбора цвета из Microsoft Word (иллюстрировано ниже), должны реализовывать ISelectionProvider; а их дочерние элементы должны реализовывать как IRawElementProviderFragment, так и ISelectionItemProvider.

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

  • Меню не поддерживает SelectionPattern. Если вы работаете с элементами меню, которые включают графику и текст (например, элементы области предварительного просмотра в меню "Вид " в Microsoft Outlook) и должны передавать состояние, следует реализовать IToggleProvider.

Обязательные члены для ISelectionProvider

Для интерфейса ISelectionProvider требуются следующие свойства, методы и события.

Обязательные участники Тип Примечания.
CanSelectMultiple Недвижимость Должна поддерживать события изменения свойств с помощью AddAutomationPropertyChangedEventHandler и RemoveAutomationPropertyChangedEventHandler.
IsSelectionRequired Недвижимость Должна поддерживать события изменения свойств с помощью AddAutomationPropertyChangedEventHandler и RemoveAutomationPropertyChangedEventHandler.
GetSelection Метод Отсутствует
InvalidatedEvent Событие Возникает, когда выбор в контейнере значительно изменился и требует отправки большего количества событий добавления и удаления, чем позволяет константа InvalidateLimit.

Свойства IsSelectionRequired и CanSelectMultiple могут быть динамическими. Например, начальное состояние элемента управления может не иметь элементов, выбранных по умолчанию, что указывает, что IsSelectionRequired является false. Однако после выбора элемента элемент управления всегда должен иметь по крайней мере один элемент. Аналогичным образом, в редких случаях элемент управления может разрешить выбор нескольких элементов при инициализации, но впоследствии разрешить только одно выделение.

Исключения

Поставщики должны генерировать следующие исключения.

Тип исключения Состояние
ElementNotEnabledException Если элемент управления не включен.
InvalidOperationException Если элемент управления скрыт.

См. также