注释
本文档适用于想要使用 System.Windows.Automation 命名空间中定义的托管 UI 自动化类的 .NET Framework 开发人员。 有关 UI 自动化的最新信息,请参阅 Windows 自动化 API:UI 自动化。
本主题介绍实现的 IValueProvider准则和约定,包括有关事件和属性的信息。 本主题的结尾列出了指向其他参考资料的链接。
控件 ValuePattern 模式用于支持具有不跨越范围且可表示为字符串的固有值的控件。 此字符串可以编辑,具体取决于控件及其设置。 有关实现此模式的控件的示例,请参阅 UI 自动化客户端的控件模式映射。
实施准则和约定
实现 Value 控件模式时,请注意以下准则和约定:
- 控件(例如 ListItem 和 TreeItem )在任意项的值可编辑的情况下,必须支持 ValuePattern,不论控件的当前编辑模式如何。 如果子项可编辑,父控件还必须支持 ValuePattern 。
可编辑列表项的示例
单行编辑控件支持通过实现 IValueProvider对内容进行编程访问。 但是,多行编辑控件不实现 IValueProvider;而是通过实现 ITextProvider来提供对内容的访问权限。
若要检索多行编辑控件的文本内容,该控件必须实现 ITextProvider。 但是, ITextProvider 不支持设置控件的值。
IValueProvider 不支持检索格式信息或子字符串值。 在这些情境中实现 ITextProvider 。
IValueProvider 必须通过Microsoft Word(下图所示) 中的颜色选取器 选择控件等控件来实现,该控件支持颜色值(例如“yellow”)和等效的内部 RGB 结构之间的字符串映射。
颜色样本字符串映射示例
- 在允许调用IsEnabledProperty之前,控件应将其
true
设置为IsReadOnlyProperty,并将其false
设置为SetValue。
IValueProvider 的必需成员
实现 IValueProvider需要以下属性和方法。
必需成员 | 成员类型 | 注释 |
---|---|---|
IsReadOnlyProperty | 资产 | 没有 |
ValueProperty | 资产 | 没有 |
SetValue | 方法 | 没有 |
例外
提供程序必须引发以下异常。
异常类型 | 条件 |
---|---|
InvalidOperationException | SetValue - 如果区域设置特定的信息以不正确的格式(如格式不正确的日期)传递给控件。 |
ArgumentException | SetValue - 如果无法将新值从字符串转换为控件识别的格式。 |
ElementNotEnabledException | SetValue - 当试图操作未启用的控件时。 |