AutomationElement.GetClickablePoint Method

Definition

Retrieves a point on the AutomationElement that can be clicked.

public:
 System::Windows::Point GetClickablePoint();
public System.Windows.Point GetClickablePoint ();
member this.GetClickablePoint : unit -> System.Windows.Point
Public Function GetClickablePoint () As Point

Returns

The physical screen coordinates of a point that can be used by a client to click on this element.

Exceptions

There is no clickable point.

The UI for the AutomationElement no longer exists.

Examples

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);
' element is an AutomationElement.
Dim clickablePoint As System.Windows.Point = element.GetClickablePoint()
System.Windows.Forms.Cursor.Position = New System.Drawing.Point(CInt(clickablePoint.X), CInt(clickablePoint.Y))

Remarks

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.

Applies to

See also