ExpandCollapse 控件模式

介绍实现 IExpandCollapseProvider的准则和约定,包括有关属性、方法和事件的信息。 ExpandCollapse 控件模式用于支持直观展开以显示更多内容和折叠以隐藏内容的控件。

有关实现此控件模式的控件示例,请参阅 控件类型及其支持的控件模式

本主题包含以下部分。

实施准则和约定

实现 ExpandCollapse 控件模式时,请注意以下准则和约定:

  • 聚合控件(使用为 UI 提供展开/折叠功能)生成的聚合控件必须支持 ExpandCollapse 控件模式,而其子元素则不支持。 例如,组合框控件是使用列表框、按钮和编辑控件的组合生成的,但它只是必须支持 ExpandCollapse 控件模式的父组合框。

    注意

    例外是菜单控件,它是单个菜单项对象的聚合。 菜单项对象可以支持 ExpandCollapse 控件模式,但父菜单控件不能。 类似的异常适用于树和树项控件。

     

  • 当控件的 IExpandCollapseProvider::ExpandCollapseState 设置为 ExpandCollapseState_LeafNode时,控件当前 ExpandCollapse 功能处于非活动状态,并且唯一可以使用此控件模式获取的信息是 expandCollapseState 。 如果随后添加了任何子对象,ExpandCollapseState 更改,并激活 ExpandCollapse 功能。

  • ExpandCollapseState 仅引用即时子对象的可见性;它不引用所有后代对象的可见性。

  • IExpandCollapseProvider::ExpandCollapse 功能特定于控制。 下面是此行为的示例。

    • Office 个人菜单可以是三态菜单项(“Expand”、“Collapsed”和“PartiallyExpanded”),其中控件指定要在调用 ExpandCollapse 时采用的状态。
    • 对树项调用 展开 可能会显示所有后代或仅显示即时子级。
    • 如果对控件调用 ExpandCollapse 维护其后代的状态,则应发送可见性更改事件,而不是状态更改事件。 如果父控件在折叠时不保留其后代的状态,该控件可能会销毁不再可见的所有后代并引发被销毁的事件:或者,它可以更改每个后代的 ExpandCollapseState,并引发可见性更改事件。
  • 为了保证导航,无论对象的父级 ExpandCollapseState,都必须位于Microsoft UI 自动化树中(具有适当的可见性状态)。 如果后代是按需生成的,则它们只能在首次显示或仅在可见时显示在 UI 自动化树中。

IExpandCollapseProvider 的必需成员

实现 IExpandCollapseProvider 接口需要以下属性、方法和事件。

必需成员 成员类型 笔记
ExpandCollapseState 财产 没有
展开 方法 没有
折叠 方法 没有
IUIAutomationPropertyChangedEventHandler 事件 此控件没有关联的事件;使用此泛型事件处理程序。

 

控件类型及其支持的控件模式

UI 自动化控件模式概述

UI 自动化树概述