实现 UI 自动化 Value 控件模式

备注

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

本主题介绍了实现 IValueProvider的准则和约定,包括有关事件和属性的信息。 本主题的结尾列出了指向其他参考资料的链接。

ValuePattern 控件模式用于支持具有未跨越范围的内部值的控件,以及可用字符串表示的控件。 此字符串是可编辑的,具体取决于控件及其设置。 有关实现此模式的控件的示例,请参阅 Control Pattern Mapping for UI Automation Clients

实现准则和约定

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

  • 如果任何项的值是可编辑的,则诸如 ListItemTreeItem 等控件必须支持 ValuePattern ,而无论控件的当前编辑模式。 如果子项是可编辑的,则父控件还必须支持 ValuePattern

可编辑的列表项。可编辑的列表项示例

  • 单行编辑控件支持通过实现 IValueProvider编程访问其内容。 但是,多行编辑控件不实现 IValueProvider;相反,它们通过实现 ITextProvider来提供对其内容的访问。

  • 若要检索多行编辑控件的文本内容,控件必须实现 ITextProvider。 但是, ITextProvider 不支持设置控件的值。

  • IValueProvider 不支持检索格式设置信息或子字符串值。 在这些情况下,请实现 ITextProvider

  • IValueProvider 必须由诸如 Microsoft Word 中的“颜色选取器”选择控件(如下所示)之类的控件实现,该控件支持颜色值(例如,“黄色”)与等效的内部 RGB 结构之间的字符串映射。

以黄色突出显示的颜色选取器。颜色样本字符串映射示例

IValueProvider 必需的成员

实现 IValueProvider需要以下属性和方法。

必需的成员 成员类型 说明
IsReadOnlyProperty 属性
ValueProperty 属性
SetValue 方法

例外

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

例外类型 条件
InvalidOperationException SetValue

- 如果向控件传递了格式错误的特定于区域设置的信息(如格式错误的日期)。
ArgumentException SetValue

- 如果无法将新值从字符串转换为控件可识别的格式。
ElementNotEnabledException SetValue

- 当尝试操作未启用的控件时。

请参阅