CustomNavigation Control Pattern

Describes guidelines and conventions for implementing the ICustomNavigationProvider interface, including information about properties and methods. The CustomNavigation control pattern is used to enable custom navigation between controls in hierarchy-like structures such as list items, bulleted lists, numbered lists and headings. This enables providers to describe structures or define the navigable relationships using the element alone and not just the containing control.

For examples of controls that implement this control pattern, see Control Types and Their Supported Control Patterns.

This topic contains the following sections.

Implementation Guidelines and Conventions

When implementing the CustomNavigation provider, note the following guidelines and conventions:

  • Property values for PositionInSet, SizeOfSet, and Level are one-based integer values.
  • ICustomNavigationProvider does not provide for active manipulation of the control such as moving positions, adding and removing items, or promoting and demoting levels.
  • Controls that implement ICustomNavigationProvider typically have a hierarchical structure, but can skip levels by using the Navigate method. The properties PositionInSet, SizeOfSet, and Level are required on the pattern.

Required Members for ICustomNavigationProvider

The following properties are required for implementing the ICustomNavigationProvider interface.

Required members Member type Notes
CachedLevel Property Located on IUIAutomationElement4 interface.
CachedPositionInSet Property Located on IUIAutomationElement4 interface.
CachedSizeOfSet Property Located on IUIAutomationElement4 interface.
CurrentLevel Property Located on IUIAutomationElement4 interface.
CurrentPositionInSet Property Located on IUIAutomationElement4 interface.
CurrentSizeOfSet Property Located on IUIAutomationElement4 interface.
Navigate Method None

 

This control pattern has no associated methods or events.

Control Types and Their Supported Control Patterns

ListItem Control

HeaderItem Control

DataItem Control

UI Automation Control Patterns Overview