实现 UI 自动化 Window 控件模式
注意
本文档适用于想要使用 System.Windows.Automation 命名空间中定义的托管 UI 自动化类的 .NET Framework 开发人员。 有关 UI 自动化的最新信息,请参阅 Windows 自动化 API:UI 自动化。
本主题介绍实现 IWindowProvider的准则和约定,包括有关 WindowPattern 属性、方法和事件的信息。 本主题的结尾列出了指向其他参考资料的链接。
WindowPattern 控件模式用于支持在传统图形用户界面内提供基于窗口的基本功能的控件。 必须实现此控件模式的控件示例包括顶级应用程序窗口、多文档界面 (MDI) 子窗口、大小可调的拆分窗格控件、模式对话框和气球状帮助窗口。
实现准则和约定
在实现 Window 控件模式时,请注意以下准则和约定:
为了能够使用 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 - 当参数不是有效的数字时。 |