实现 UI 自动化 Value 控件模式

注释

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

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

控件 ValuePattern 模式用于支持具有不跨越范围且可表示为字符串的固有值的控件。 此字符串可以编辑,具体取决于控件及其设置。 有关实现此模式的控件的示例,请参阅 UI 自动化客户端的控件模式映射

实施准则和约定

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

  • 控件(例如 ListItemTreeItem )在任意项的值可编辑的情况下,必须支持 ValuePattern,不论控件的当前编辑模式如何。 如果子项可编辑,父控件还必须支持 ValuePattern

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

  • 单行编辑控件支持通过实现 IValueProvider对内容进行编程访问。 但是,多行编辑控件不实现 IValueProvider;而是通过实现 ITextProvider来提供对内容的访问权限。

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

  • IValueProvider 不支持检索格式信息或子字符串值。 在这些情境中实现 ITextProvider

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

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

IValueProvider 的必需成员

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

必需成员 成员类型 注释
IsReadOnlyProperty 资产 没有
ValueProperty 资产 没有
SetValue 方法 没有

例外

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

异常类型 条件
InvalidOperationException SetValue

- 如果区域设置特定的信息以不正确的格式(如格式不正确的日期)传递给控件。
ArgumentException SetValue

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

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

另请参阅