Implementing the UI Automation Dock Control Pattern

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

The DockPattern control pattern is used to expose the dock properties of a control within a docking container. A docking container is a control that allows you to arrange child elements horizontally and vertically, relative to each other. For examples of controls that implement this control pattern, see Control Pattern Mapping for UI Automation Clients.

Docking Example from Visual Studio Where "Class View" Window Is DockPosition.Right and "Error List" Window Is DockPosition.Bottom

Docking container with two docked children.

This topic contains the following sections.

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

  • IDockProvider does not expose any properties of the docking container or any properties of controls that are docked adjacent to the current control within the docking container.

  • Controls are docked relative to each other based on their current z-order; the higher their z-order placement, the farther they are placed from the specified edge of the docking container.

  • If the docking container is resized, any docked controls within the container will be repositioned flush to the same edge to which they were originally docked. The docked controls will also resize to fill any space within the container according to the docking behavior of their DockPosition. For example, if Top is specified, the left and right sides of the control will expand to fill any available space. If Fill is specified, all four sides of the control will expand to fill any available space.

  • On a multi-monitor system, controls should dock to the left or right side of the current monitor. If that is not possible, they should dock to the left side of the leftmost monitor or the right side of the rightmost monitor.

The following properties and methods are required for implementing the IDockProvider interface.

Required members

Member type








This control pattern has no associated events.

Providers must throw the following exceptions.

Exception type




  • When a control is not able to execute the requested dock style.