Поддержка автоматизации пользовательского интерфейса для элемента управления типа DataItem

Примечание.

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

В этом разделе содержатся сведения о поддержке Microsoft модель автоматизации пользовательского интерфейса для типа элемента управления DataItem. В модель автоматизации пользовательского интерфейса тип элемента управления представляет собой набор условий, которые элемент управления должен соответствовать для использования ControlTypeProperty свойства. Условия включают конкретные рекомендации по структуре дерева модель автоматизации пользовательского интерфейса, модель автоматизации пользовательского интерфейса значения свойств и шаблоны элементов управления.

Запись в списке контактов является примером элемента управления DataItem. Элемент управления DataItem содержит сведения, представляющие интерес для конечного пользователя. Он более сложный, чем обычный элемент списка, так как содержит более ценные сведения.

В следующих разделах определяются необходимые модель автоматизации пользовательского интерфейса структура дерева, свойства, шаблоны элементов управления и события для типа элемента управления DataItem. Требования модель автоматизации пользовательского интерфейса применяются ко всем элементам управления элементами данных, будь то Windows Presentation Foundation (WPF), Win32 или Windows Forms.

Требуемая древовидная структура модели автоматизации пользовательского интерфейса

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

дерево модель автоматизации пользовательского интерфейса — представление элемента управления дерево модель автоматизации пользовательского интерфейса — представление содержимого
DataItem

— зависит (0 или более; может быть структурировано в иерархии)
DataItem

— зависит (0 или более; может быть структурировано в иерархии)

Элемент данных в сетке данных может поддерживать множество объектов, в том числе еще один уровень элементов данных или определенные элементы сетки, такие как текст, изображения или элементы управления "Поле ввода". Если элемент данных имеет определенную роль объекта, этот элемент должен представляться как определенный тип элемента управления; например, тип элемента управления ListItem для элемента данных, доступного для выбора в сетке.

Требуемые свойства модели автоматизации пользовательского интерфейса

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

Свойство Значение Примечания.
AutomationIdProperty См. примечания. Значение этого свойства должно быть уникальным среди всех элементов управления в приложении.
BoundingRectangleProperty См. примечания. Внешний прямоугольник, содержащий весь элемент управления.
ClickablePointProperty См. примечания. Поддерживается при наличии ограничивающего прямоугольника. Если не все точки внутри ограничивающего прямоугольника являются интерактивными и выполняется специализированная проверка на наличие данных, выполните переопределение и предоставьте интерактивную точку.
ControlTypeProperty DataItem Это значение является одинаковым для всех инфраструктур пользовательского интерфейса.
IsContentElementProperty Истина Элемент управления DataItem всегда должен быть содержимым.
IsControlElementProperty Истина Элемент управления DataItem всегда должен быть элементом управления.
IsKeyboardFocusableProperty См. примечания. Если элемент управления может получать фокус клавиатуры, он должен поддерживать это свойство.
ItemStatusProperty См. примечания. Если элемент управления содержит состояние, которое обновляется динамически, то это свойство должно поддерживаться, чтобы специальные возможности могли получать обновления при изменении состояния элемента.
ItemTypeProperty См. примечания. Это строковое значение, передающее конечному пользователю базовый объект, который этот элемент представляет. Примерами являются "Файл мультимедиа" или "Контакт".
LabeledByProperty Null Элементы управления DataItem не имеют меток со статическим текстом.
LocalizedControlTypeProperty "элемент данных" Локализованная строка, соответствующая типу элемента управления DataItem.
NameProperty См. примечания. Элемент управления DataItem всегда содержит основной текстовый элемент, имеющий отношение к тому, что пользователь будет воспринимать как семантический идентификатор для элемента.

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

В следующей таблице перечислены шаблоны элементов управления Microsoft модель автоматизации пользовательского интерфейса, которые должны поддерживаться всеми элементами управления элементами данных. Дополнительные сведения о шаблонах элементов управления см. в разделе UI Automation Control Patterns Overview.

Шаблон элемента управления Поддержка Примечания.
IExpandCollapseProvider Зависит Если элемент данных можно разворачивать и сворачивать для отображения или скрытия информации, должен поддерживаться шаблон Expand Collapse.
IGridItemProvider Зависит Элементы данных будет поддерживать шаблон Grid Item (элемент сетки), когда коллекция элементов данных доступна в контейнере, в котором можно выполнять пространственную навигацию от элемента к элементу.
IScrollItemProvider Зависит Все элементы данных поддерживают возможность прокручивания в представлении с помощью шаблона Scroll Item, когда их контейнер данных содержит больше элементов, чем может поместиться на экране.
ISelectionItemProvider Да Все элементы данных должны поддерживать шаблон Selection Item, чтобы указывать, когда элемент выбран.
ITableItemProvider Зависит Если элемент данных содержится в типе элемента управления Data Grid, он будет поддерживать этот шаблон.
IToggleProvider Зависит Если элемент данных содержит состояние, которое может быть циклически пройдено.
IValueProvider Зависит Если основной текст элемента данных является редактируемым, то должен поддерживаться шаблон Value.

Работа с элементами данных в больших списках

Большие списки часто виртуализированы в платформах пользовательского интерфейса для повышения производительности. Из-за этого клиент модель автоматизации пользовательского интерфейса не может использовать функцию запроса модель автоматизации пользовательского интерфейса, чтобы сломать содержимое полного дерева так же, как и в других контейнерах элементов. Клиент должен прокрутить элемент в представление (или развернуть элемент управления, чтобы отобразить все важные параметры) до получения доступа к полному набору сведений из элемента данных.

При вызове SetFocus элемента модель автоматизации пользовательского интерфейса для элемента данных в случае с Microsoft Windows Обозреватель будет возвращен успешно и фокус будет установлен в поддереве элемента данных "Изменить".

Необходимые события модели автоматизации пользовательского интерфейса

В следующей таблице перечислены события модель автоматизации пользовательского интерфейса, которые должны поддерживаться всеми элементами управления элементами данных. Дополнительные сведения о событиях см. в разделе UI Automation Events Overview.

событие модель автоматизации пользовательского интерфейса Поддержка Примечания.
AutomationFocusChangedEvent Обязательное поле нет
Событие изменения свойстваBoundingRectangleProperty Обязательное поле нет
Событие изменения свойстваIsEnabledProperty Обязательное поле нет
Событие изменения свойстваIsOffscreenProperty Обязательное поле нет
Событие изменения свойстваNameProperty Обязательное поле нет
StructureChangedEvent Обязательное поле нет
InvokedEvent Зависит нет
Событие изменения свойстваExpandCollapseStateProperty Зависит нет
ElementAddedToSelectionEvent Обязательное поле нет
ElementRemovedFromSelectionEvent Обязательное поле нет
ElementSelectedEvent Обязательное поле нет
Событие изменения свойстваToggleStateProperty Зависит нет
Событие изменения свойстваValueProperty Зависит нет

Пример элемента управления DataItem

На следующем рисунке показан тип элемента управления DataItem в элементе управления представления списка с поддержкой подробных сведений для столбцов.

Graphic of a List View control with two data items

Представление элемента управления и представление содержимого дерева модель автоматизации пользовательского интерфейса, относящегося к элементу управления элементом данных, отображается ниже. Шаблоны элементов управления для каждого элемента автоматизации отображаются в круглых скобках. Группа "Contoso" также является частью сетки элемента управления ведущего приложения Data Grid.

дерево модель автоматизации пользовательского интерфейса — представление элемента управления дерево модель автоматизации пользовательского интерфейса — представление содержимого
— Группа "Contoso" (таблица, сетка)
— DataItem "Accounts Receivable.doc" (TableItem, GridItem, SelectionItem, Invoke)
— Изображение "Учетные записи Receivable.doc"
— Изменение имени (TableItem, GridItem, значение "Учетные записи Receivable.doc")
- Изменить "Дата изменения" (TableItem, GridItem, значение "8/25/2006 3:29 ВЕЧЕРА")
— Изменить "Size" (GridItem, TableItem, Value "11.0 КБ)
— DataItem "Accounts Payable.doc" (TableItem, GridItem, SelectionItem, Invoke)
- ...
— Группа "Contoso" (таблица, сетка)
— DataItem "Accounts Receivable.doc" (TableItem, GridItem, SelectionItem, Invoke)
— Изображение "Учетные записи Receivable.doc"
— Изменение имени (TableItem, GridItem, значение "Учетные записи Receivable.doc")
- Изменить "Дата изменения" (TableItem, GridItem, значение "8/25/2006 3:29 ВЕЧЕРА")
— Изменить "Size" (GridItem, TableItem, Value "11.0 КБ)
— DataItem "Accounts Payable.doc" (TableItem, GridItem, SelectionItem, Invoke)
- ...

Если сетка представляет список выбираемых элементов, соответствующие элементы пользовательского интерфейса могут быть представлены типом элемента управления ListItem, а не DataItem. В предыдущем примере элементы DataItem (Accounts Receivable.doc и Accounts Payable.doc) в в элементе Group (Contoso) можно улучшить, представив их как элементы управления типа ListItem, поскольку этот тип уже поддерживает шаблон элемента управления SelectionItem.

См. также