Шаблон элемента управления 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 | Событие | Этот элемент управления не имеет связанных событий; используйте этот универсальный обработчик событий. |
Связанные темы
-
Типы элементов управления и поддерживаемые ими шаблоны элементов управления
-
Общие сведения о шаблонах элементов управления модели автоматизации пользовательского интерфейса
-
Общие сведения о дереве модели автоматизации пользовательского интерфейса