TextPatternRange.FindText Method (String, Boolean, Boolean)

 

Returns a text range subset that contains the specified text.

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

public TextPatternRange FindText(
	string text,
	bool backward,
	bool ignoreCase
)

Parameters

text
Type: System.String

The text string to search for.

backward
Type: System.Boolean

true if the last occurring text range should be returned instead of the first; otherwise false.

ignoreCase
Type: System.Boolean

true if case should be ignored; otherwise false.

Return Value

Type: System.Windows.Automation.Text.TextPatternRange

A text range matching the specified text; otherwise null (Nothing in Microsoft Visual Basic .NET). 

There is no differentiation between hidden and visible text. UI Automation clients can use IsHiddenAttribute to check text visibility.

System_CAPS_noteNote

Use DocumentRange to search the entire document.

 private TextPatternRange TextFromSelection(AutomationElement target)
{
    // Specify the control type we're looking for, in this case 'Document'
    PropertyCondition cond = new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Document);

    // target --> The root AutomationElement.
    AutomationElement textProvider = target.FindFirst(TreeScope.Descendants, cond);

    TextPattern textpatternPattern = textProvider.GetCurrentPattern(TextPattern.Pattern) as TextPattern;

    if (textpatternPattern == null)
    {
        Console.WriteLine("Root element does not contain a descendant that supports TextPattern.");
        return null;
    }
    TextPatternRange[] tprSelection = textpatternPattern.GetSelection();
    // Find 'text' in selection range
    return tprSelection[0].FindText("text", false, true);
}

.NET Framework
Available since 3.0
Return to top
Show: