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

Примечание.

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

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

Шаблон элемента управления SelectionPattern используется для поддержки элементов управления, которые действуют как контейнеры для коллекции выбираемых дочерних элементов. Дочерние элементы данного элемента должны реализовывать ISelectionItemProvider. Примеры элементов управления, реализующие данный шаблон элемента управления, см. в разделе Control Pattern Mapping for UI Automation Clients.

Правила и соглашения реализации

При реализации шаблона элемента управления Selection обратите внимание на следующие правила и соглашения.

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

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

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

Color picker with yellow highlighted. Пример сопоставления строк цветового swatch

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

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

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

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

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

Исключения

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

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

См. также