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


Реализация элемента управления «Шаблон сетки автоматизированного пользовательского интерфейса»

Замечание

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

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

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

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

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

  • Координаты сетки начинаются с нуля, где верхняя левая (или верхняя правая ячейка в зависимости от языкового стандарта) имеет координаты (0, 0).

  • Если ячейка пуста, элемент автоматизации пользовательского интерфейса должен быть возвращен для поддержки ContainingGrid свойства для этой ячейки. Это возможно, если макет дочерних элементов в сетке похож на неровный массив (см. пример ниже).

Представление проводника Windows, показывающее неровный макет. Пример элемента управления Grid с пустыми координатами

  • Сетка с одним элементом по-прежнему требуется для реализации IGridProvider , если она логически считается сеткой. Число дочерних элементов в сетке является нематериальным.

  • Скрытые строки и столбцы могут быть загружены в дерево автоматизации пользовательского интерфейса в зависимости от реализации поставщика и, следовательно, будут отражены в свойствах RowCount и ColumnCount. Если скрытые строки и столбцы еще не загружены, их не следует считать.

  • IGridProvider не включает активную обработку сетки; ITransformProvider необходимо реализовать, чтобы включить эту функцию.

  • Используйте StructureChangedEventHandler, чтобы отслеживать структурные или макетные изменения сетки, такие как ячейки, которые были добавлены, удалены или объединены.

  • Используйте AutomationFocusChangedEventHandler для отслеживания обхода элементов или ячеек сетки.

Обязательные элементы для IGridProvider

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

Обязательные участники Тип Примечания.
RowCount Недвижимость Отсутствует
ColumnCount Недвижимость Отсутствует
GetItem Метод Отсутствует

Этот шаблон элемента управления не имеет связанных событий.

Исключения

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

Тип исключения Состояние
ArgumentOutOfRangeException GetItem

— Если запрошенная координата строки больше, чем RowCount, или координата столбца больше, чем ColumnCount.
ArgumentOutOfRangeException GetItem

— Если любой из запрошенных координат строк или столбцов меньше нуля.

См. также