Реализация шаблона элемента управления сеткой автоматизации пользовательского интерфейса
Примечание.
Эта документация предназначена для разработчиков .NET Framework, желающих использовать управляемые классы автоматизации пользовательского интерфейса, определенные в пространстве имен System.Windows.Automation. Последние сведения об автоматизации пользовательского интерфейса см. в статье API автоматизации Windows. Автоматизация пользовательского интерфейса.
В этом разделе приводятся рекомендации и соглашения для реализации IGridProvider, включая сведения о свойствах, методах и событиях. Ссылки на дополнительные материалы перечислены в конце раздела.
Шаблон элемента управления GridPattern используется для поддержки элементов управления, которые действуют как контейнеры для коллекции дочерних элементов. Дочерние элементы данного элемента должны реализовывать IGridItemProvider и быть организованы в двумерной логической системе координат, к которой можно обращаться по строкам и столбцам. Примеры элементов управления, реализующие данный шаблон элемента управления, см. в разделе Control Pattern Mapping for UI Automation Clients.
Правила и соглашения реализации
При реализации шаблона элемента управления Grid обратите внимание на следующие правила и соглашения.
Координаты сетки отсчитываются начиная с нуля и от левой верхней ячейки (или правой верхней ячейки в зависимости от языкового стандарта), имеющей координаты (0, 0).
Если ячейка пуста, элемент модели автоматизации пользовательского интерфейса по-прежнему должен возвращаться для поддержки свойства ContainingGrid для этой ячейки. Это возможно, когда макет дочерних элементов сетки подобен массиву с переменной длиной (см. пример ниже).
Пример элемента управления Сетки с пустыми координатами
Сетка с единственным элементом по-прежнему должна реализовывать IGridProvider , если она логически считается сеткой. Количество дочерних элементов в сетке не имеет значения.
Скрытые строки и столбцы в зависимости от реализации поставщика могут быть загружены в дерево модель автоматизации пользовательского интерфейса и поэтому будут отражены в свойствах RowCount и ColumnCount свойствах. Если скрытые строки и столбцы еще не загружены, они не должны учитываться.
IGridProvider не позволяет активно манипулировать сеткой; для включения этой функциональности необходимо реализовать ITransformProvider .
Используйте StructureChangedEventHandler для прослушивания изменений структуры или макета сетки, таких как добавление, удаление или слияние ячеек.
Используйте AutomationFocusChangedEventHandler для отслеживания прохождения по элементам или ячейкам сетки.
Обязательные члены для IGridProvider
Следующие свойства и методы обязательны для реализации интерфейса IGridProvider.
Обязательные члены | Тип | Примечания. |
---|---|---|
RowCount | Свойство | нет |
ColumnCount | Свойство | нет |
GetItem | Способ | нет |
Этот шаблон элемента управления не имеет связанных событий.
Исключения
Поставщики должны вызывать следующие исключения.
Тип исключения | Condition |
---|---|
ArgumentOutOfRangeException | GetItem — Если запрошенная координата строки больше, чем RowCount координата ColumnCountстолбца, больше. |
ArgumentOutOfRangeException | GetItem — Если любой из запрошенных координат строк или столбцов меньше нуля. |
См. также
- Общие сведения о шаблонах элементов управления модели автоматизации пользовательского интерфейса
- Поддержка шаблонов элементов управления в поставщике автоматизации пользовательского интерфейса
- Шаблоны элементов управления модели автоматизации пользовательского интерфейса для клиентов
- Реализация шаблона элемента управления GridItem модели автоматизации пользовательского интерфейса
- Общие сведения о дереве модели автоматизации пользовательского интерфейса
- Использование кэширования в модели автоматизации пользовательского интерфейса