Implementing the UI Automation Value Control Pattern

 
System_CAPS_ICON_note.jpg Note

This documentation is intended for .NET Framework developers who want to use the managed UI Automation classes defined in the System.Windows.Automation namespace. For the latest information about UI Automation, see Windows Automation API: UI Automation.

This topic introduces guidelines and conventions for implementing IValueProvider, including information on events and properties. Links to additional references are listed at the end of the topic.

The ValuePattern control pattern is used to support controls that have an intrinsic value not spanning a range and that can be represented as a string. This string can be editable, depending on the control and its settings. For examples of controls that implement this pattern, see Control Pattern Mapping for UI Automation Clients.

When implementing the Value control pattern, note the following guidelines and conventions:

  • Controls such as ListItem and TreeItem must support ValuePattern if the value of any of the items is editable, regardless of the current edit mode of the control. The parent control must also support ValuePattern if the child items are editable.

Editable list item.
Example of an Editable List Item

  • Single-line edit controls support programmatic access to their contents by implementing IValueProvider. However, multi-line edit controls do not implement IValueProvider; instead they provide access to their content by implementing ITextProvider.

  • To retrieve the textual contents of a multi-line edit control, the control must implement ITextProvider. However, ITextProvider does not support setting the value of a control.

  • IValueProvider does not support the retrieval of formatting information or substring values. Implement ITextProvider in these scenarios.

  • IValueProvider must be implemented by controls such as the Color Picker selection control from Microsoft Word (illustrated below), which supports string mapping between a color value (for example, "yellow") and an equivalent internal Entity with relative path '../Token/TLA%23tla_rgb_md.md' can not be found, for source topic '{"project_id":"3fedad16-eaf1-41a6-8f96-0c1949c68f32","entity_id":"b0fcdd87-3add-4345-bca9-e891205e02ba","entity_type":"Article","locale":"en-US"}'. structure.

Color picker with yellow highlighted.
Example of Color Swatch String Mapping

The following properties and methods are required for implementing IValueProvider.

Required membersMember typeNotes
IsReadOnlyPropertyPropertyNone
ValuePropertyPropertyNone
SetValueMethodNone

Providers must throw the following exceptions.

Exception typeCondition
InvalidOperationExceptionSetValue

- If locale-specific information is passed to a control in an incorrect format such as an incorrectly formatted date.
ArgumentExceptionSetValue

- If a new value cannot be converted from a string to a format the control recognizes.
ElementNotEnabledExceptionSetValue

- When an attempt is made to manipulate a control that is not enabled.

UI Automation Control Patterns Overview
Support Control Patterns in a UI Automation Provider
UI Automation Control Patterns for Clients
TextPattern Insert Text Sample
UI Automation Tree Overview
Use Caching in UI Automation

Show: