This documentation is archived and is not being maintained.

AutomationElement.GetClickablePoint Method

Retrieves a point on the AutomationElement that can be clicked.

Namespace:  System.Windows.Automation
Assembly:  UIAutomationClient (in UIAutomationClient.dll)

public Point GetClickablePoint()

Return Value

Type: System.Windows.Point
The physical screen coordinates of a point that can be used by a client to click on this element.


There is no clickable point.


The UI for the AutomationElement no longer exists.

An AutomationElement is not clickable if it is completely obscured by another window.

An AutomationElement is clickable when it satisfies all the following conditions:

  • It is programmatically visible and available with the UI Automation tree.

  • It is scrolled fully into view within its parent container, if any. If the element is clipped, there is no guarantee that it is clickable.

  • The element is not obscured by any other UI element. If the element is partially obscured by some UI element other than its ancestors, it might not be clickable.

  • The window containing the element must itself be clickable. For example, the window is not clickable if the containing window is completely transparent. Mouse clicks will click through to the window underneath, so any controls within the transparent window will not return clickable points.

  • If the element is a container (such as list or tree view), it must have a point that when clicked will cause the background of the control to be focused. If every part of the container control is occupied by a child element, it is not clickable.

There is no guarantee that a control will do anything when clicked on a point defined as clickable by the UI Automation provider. Consider using control patterns instead to perform actions on controls.

The following code retrieves a clickable point for a control and moves the system cursor to that point.

// element is an AutomationElement.
System.Windows.Point clickablePoint = element.GetClickablePoint();
System.Windows.Forms.Cursor.Position = 
    new System.Drawing.Point((int)clickablePoint.X, (int)clickablePoint.Y);

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0