实现 UI 自动化 Window 控件模式

注释

本文档适用于想要使用 System.Windows.Automation 命名空间中定义的托管 UI 自动化类的 .NET Framework 开发人员。 有关 UI 自动化的最新信息,请参阅 Windows 自动化 API:UI 自动化

本主题介绍实现的 IWindowProvider准则和约定,包括有关 WindowPattern 属性、方法和事件的信息。 主题末尾列出了指向其他引用的链接。

控件 WindowPattern 模式用于支持在传统图形用户界面(GUI)中提供基于窗口的基本功能的控件。 必须实现此控件模式的控件示例包括顶级应用程序窗口、多文档界面(MDI)子窗口、可调整大小的拆分窗格控件、模式对话框和气球帮助窗口。

实施准则和约定

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

  • 若要支持使用 UI 自动化修改窗口大小和屏幕位置的功能,控件必须实现ITransformProvider接口,并且还要实现IWindowProvider接口。

  • 如需实现IWindowProvider,通常需要控件包含标题栏和标题栏元素,这些元素使控件能够移动、调整大小、最大化、最小化或关闭。

  • 工具提示弹出窗口和组合框或菜单下拉菜单等控件通常不实现 IWindowProvider

  • 气球状帮助窗口和基本工具提示弹出窗口的区别在于是否提供了像窗口一样的“关闭”按钮。

  • IWindowProvider 不支持全屏模式,因为它特定于应用程序,并且不是典型的窗口行为。

IWindowProvider 的必需成员

IWindowProvider 接口需要以下属性、方法和事件。

必需的成员 成员类型 注释
InteractionState 资产 没有
IsModal 资产 没有
IsTopmost 资产 没有
Maximizable 资产 没有
Minimizable 资产 没有
VisualState 资产 没有
Close 方法 没有
SetVisualState 方法 没有
WaitForInputIdle 方法 没有
WindowClosedEvent 事件 / 活动 没有
WindowOpenedEvent 事件 / 活动 没有
WindowInteractionState 事件 / 活动 不保证为 ReadyForUserInteraction

例外

提供程序必须引发以下异常。

异常类型 条件
InvalidOperationException SetVisualState

- 当控件不支持请求的行为时。
ArgumentOutOfRangeException WaitForInputIdle

- 当参数不是有效数字时。

另请参阅