Шаблон элемента управления ExpandCollapse

Описание рекомендаций и соглашений по реализации IExpandCollapseProvider, включая сведения о свойствах, методах и событиях. Шаблон элемента управления ExpandCollapse используется для поддержки элементов управления, которые визуально расширяются для отображения большего содержимого и сворачиваются для скрытия содержимого.

Примеры элементов управления, реализующих этот шаблон элемента управления, см. в разделе Типы элементов управления и поддерживаемые ими шаблоны элементов управления.

В этом разделе содержатся следующие подразделы.

Правила и соглашения реализации

При реализации шаблона элемента управления ExpandCollapse учитывайте следующие рекомендации и соглашения.

  • Агрегатные элементы управления, созданные на основе дочерних объектов, которые предоставляют пользовательскому интерфейсу функциональность развертывания и свертывания, должны поддерживать шаблон элемента управления ExpandCollapse , тогда как их дочерние элементы этого не делают. Например, элемент управления "Поле со списком" создается с сочетанием элементов управления "Список", "Кнопка" и "Изменить", но только родительское поле со списком должно поддерживать шаблон элемента управления ExpandCollapse .

    Примечание

    Исключением является элемент управления меню, который является агрегатом отдельных объектов пунктов меню. Объекты пунктов меню могут поддерживать шаблон элемента управления ExpandCollapse , но родительский элемент управления меню — нет. Аналогичное исключение применяется к элементам управления "Дерево" и "Элемент дерева".

     

  • Если параметр IExpandCollapseProvider::ExpandCollapseState элемента управления имеет значение ExpandCollapseState_LeafNode, то все функции ExpandCollapse в настоящее время неактивны для элемента управления, и с помощью этого шаблона элемента управления можно получить только данные ExpandCollapseState. Если впоследствии добавляются какие-либо дочерние объекты, функция ExpandCollapseState изменяется и активируется функция ExpandCollapse .

  • ExpandCollapseState — это видимость только непосредственных дочерних объектов; он не ссылается на видимость всех объектов-потомков.

  • Функции IExpandCollapseProvider::Expand и Collapse зависят от элемента управления. Ниже представлены примеры такого поведения.

    • Личное меню Office может быть элементом меню с тремя состояниями ("Expanded", "Collapsed" и "PartiallyExpanded"), где элемент управления указывает состояние, которое будет применяться при вызове метода Expand или Collapse .
    • При вызове метода Expand для элемента дерева могут отображаться все потомки или только непосредственные дочерние элементы.
    • Если при вызове метода Expand или Collapse для элемента управления сохраняется состояние его потомков, должно быть отправлено событие изменения видимости, а не событие изменения состояния. Если родительский элемент управления не сохраняет состояние своих потомков при свернутом состоянии, элемент управления может уничтожить все потомки, которые больше не видны, и вызвать событие уничтожения; или может изменить expandCollapseState для каждого потомка и вызвать событие изменения видимости.
  • Чтобы обеспечить навигацию, желательно, чтобы объект был в дереве Microsoft модель автоматизации пользовательского интерфейса (с соответствующим состоянием видимости) независимо от его родительских объектов ExpandCollapseState. Если потомки создаются по требованию, они могут отображаться в дереве модель автоматизации пользовательского интерфейса только после первого отображения или только в то время, когда они видны.

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

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

Обязательные члены Тип члена Примечания
ExpandCollapseState Свойство Нет
Разверните Метод Нет
Свернуть Метод Нет
IUIAutomationPropertyChangedEventHandler Событие Этот элемент управления не имеет связанных событий; используйте этот универсальный обработчик событий.

 

Типы элементов управления и поддерживаемые ими шаблоны элементов управления

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

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