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


Реализация шаблона элемента управления 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 необходимы следующие свойства и методы.

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

Тип члена

Примечания

ExpandCollapseState

Свойство

Нет

Expand

Метод

Нет

Collapse

Метод

Нет

AutomationPropertyChangedEventHandler

Событие

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

Исключения

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

Тип исключения

Атрибут Condition

InvalidOperationException

Expand или Collapse вызывается, когда ExpandCollapseState = LeafNode.

См. также

Задачи

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

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

Использование кэширования в модели автоматизации пользовательского интерфейса

Основные понятия

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

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

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