Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Эта документация предназначена для разработчиков .NET Framework, которые хотят использовать управляемые классы автоматизации пользовательского интерфейса, определенные в пространстве имен System.Windows.Automation. Последние сведения об автоматизации пользовательского интерфейса см. в разделе API автоматизации Windows: автоматизация пользовательского интерфейса.
В этом разделе приводятся рекомендации и соглашения о реализации IExpandCollapseProvider, включая сведения о свойствах, методах и событиях. Ссылки на дополнительные ссылки перечислены в конце обзора.
Шаблон ExpandCollapsePattern элемента управления используется для поддержки элементов управления, которые визуально расширяются, чтобы показать больше содержимого и свертываются, чтобы скрыть его. Примеры элементов управления, реализующих этот шаблон, см. в разделе Сопоставление шаблонов элементов управления для клиентов автоматизации пользовательского интерфейса.
Рекомендации по реализации и соглашения
При реализации шаблона элемента управления 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 каждого потомка и вызвать событие изменения видимости.
Чтобы гарантировать навигацию, желательно, чтобы объект был в дереве автоматизации пользовательского интерфейса (с соответствующим состоянием видимости) независимо от его родителей ExpandCollapseState. Если потомки создаются по запросу, они могут отображаться только в дереве автоматизации пользовательского интерфейса после первого отображения или только во время их отображения.
Обязательные члены для IExpandCollapseProvider
Для реализации IExpandCollapseProviderнеобходимы следующие свойства и методы.
Обязательные участники | Тип участника | Примечания. |
---|---|---|
ExpandCollapseState | Недвижимость | Отсутствует |
Expand | Метод | Отсутствует |
Collapse | Метод | Отсутствует |
AutomationPropertyChangedEventHandler | Событие | Этот элемент управления не имеет связанных событий; используйте этот универсальный делегат. |
Исключения
Поставщики должны генерировать следующие исключения.
Тип исключения | Состояние |
---|---|
InvalidOperationException | Либо Expand, либо Collapse вызывается, когда ExpandCollapseState = LeafNode. |
См. также
- Обзор шаблонов управления автоматизацией пользовательского интерфейса
- Поддержка шаблонов управления в поставщике автоматизации пользовательского интерфейса
- Шаблоны элементов управления автоматизации пользовательского интерфейса для клиентов
- Переход между элементами автоматизации пользовательского интерфейса с помощью TreeWalker
- Обзор дерева автоматизации пользовательского интерфейса
- Использование кэширования в автоматизации пользовательского интерфейса