Реализация шаблона элемента управления ExpandCollapse модели автоматизации пользовательского интерфейса
![]() |
---|
Эта документация предназначена для разработчиков на платформе .NET Framework, которым требуется использовать управляемые классы UI Automation, определенные в пространстве имен System.Windows.Automation.Последние сведения о UI Automation см. на веб-странице Windows Automation API: UI Automation. |
В этом разделе рассматриваются правила и соглашения по реализации IExpandCollapseProvider, включая сведения о свойствах, методах и событиях. Ссылки на дополнительные материалы перечислены в конце раздела.
Шаблон элемента управления ExpandCollapsePattern используется для поддержки элементов управления, которые развертываются для отображения дополнительного содержимого и свертываются для его скрытия. Примеры элементов управления, реализующие данный шаблон элемента управления, см. в разделе Сопоставление шаблона элемента управления для клиентов автоматизации пользовательского интерфейса.
В этом разделе содержатся следующие подразделы.
- Правила и соглашения по реализации
- Обязательные члены для IExpandCollapseProvider
- Исключения
- Связанные разделы
Правила и соглашения по реализации
При реализации шаблона элемента управления ExpandCollapse следует обратить внимание на следующие правила и соглашения:
Агрегатные элементы управления — построенные с помощью дочерних объектов, содержащих функции развертывания и свертывания — должны поддерживать шаблон элемента управления ExpandCollapsePattern, а их дочерние элементы — нет. Например, элемент управления "поле со списком" создается с помощью комбинации элементов управления "список", "кнопка" и "редактирование", но поддерживать ExpandCollapsePattern должно только родительское поле со списком.
Примечание
Исключением является элемент управления "меню", который является отдельным объектом MenuItem.Объекты MenuItem могут поддерживать шаблон элемента управления ExpandCollapsePattern, а родительский элемент управления "меню" не может.Подобное исключение применяется к элементам управления "дерево" и "элемент дерева".
Когда для ExpandCollapseState элемента управления установлено значение LeafNode, любая функция ExpandCollapsePattern неактивна для него и единственные сведения, которые могут быть получены с помощью шаблона элемента управления, — это ExpandCollapseState. При последовательном изменении дочерних объектов ExpandCollapseState изменяется и функция ExpandCollapsePattern активируется.
К ExpandCollapseState относятся отображение только непосредственных, а не всех дочерних объектов.
Функция развертывания и свертывания зависит от конкретного элемента управления. Ниже приведены примеры различного поведения функции.
Личное меню Office может быть элементом MenuItem с тремя состояниями (Expanded, Collapsed и PartiallyExpanded), где элемент управления задает принимаемое состояние, когда вызывается Expand или Collapse.
При вызове Expand на TreeItem могут отображаться все потомки или только непосредственные потомки.
Если при вызове Expand или Collapse на элементе управления сохраняется состояние его потомков, то должно быть вызвано событие изменения видимости, а не событие изменения состояния. Если родительский элемент управления не хранит состояние его потомков при свертывании, элемент управления может уничтожить всех потомков, которые больше не отображаются, и вызвать событие удаления; или он может изменить ExpandCollapseState для каждого потомка и вызвать событие изменения видимости.
Чтобы обеспечить возможность навигации, объекту следует находиться в дереве UI Automation (с указанием соответствующего состояния видимости) независимо от ExpandCollapseState его родителя. Если потомки создаются по запросу, они могут отображаться в дереве UI Automation только после того, как они были отображены впервые, или только в то время, когда они являются видимыми.
Обязательные члены для IExpandCollapseProvider
Для реализации IExpandCollapseProvider необходимы следующие свойства и методы.
Обязательные члены |
Тип члена |
Примечания |
---|---|---|
Свойство |
Нет |
|
Метод |
Нет |
|
Метод |
Нет |
|
Событие |
Этот элемент управления не имеет связанных событий; используйте этот универсальный делегат. |
Исключения
Поставщики должны вызывать следующие исключения.
Тип исключения |
Атрибут Condition |
---|---|
Expand или Collapse вызывается, когда ExpandCollapseState = LeafNode. |
См. также
Задачи
Навигация между элементами автоматизированного пользовательского интерфейса с помощью TreeWalker
Использование кэширования в модели автоматизации пользовательского интерфейса
Основные понятия
Общие сведения о шаблонах элементов управления модели автоматизации пользовательского интерфейса
Шаблоны элементов управления модели автоматизации пользовательского интерфейса для клиентов
Общие сведения о дереве модели автоматизации пользовательского интерфейса