ExpandCollapse 控件模式

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

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

本主题包含以下各节:

实现准则和约定

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

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

    注意

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

     

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

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

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

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

IExpandCollapseProvider 所需的成员

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

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

 

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

UI 自动化控件模式概述

UI 自动化树概述