AutomationElement.GetClickablePoint Method ()

 
System_CAPS_noteNote

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

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.

Exception Condition
NoClickablePointException

There is no clickable point.

ElementNotAvailableException

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);

.NET Framework
Available since 3.0
Return to top
Show: