Поделиться через


TextPatternRange.FindAttribute Метод

Определение

Возвращает подмножество текстового диапазона, имеющее заданное значение атрибута.

public:
 System::Windows::Automation::Text::TextPatternRange ^ FindAttribute(System::Windows::Automation::AutomationTextAttribute ^ attribute, System::Object ^ value, bool backward);
public System.Windows.Automation.Text.TextPatternRange FindAttribute (System.Windows.Automation.AutomationTextAttribute attribute, object value, bool backward);
member this.FindAttribute : System.Windows.Automation.AutomationTextAttribute * obj * bool -> System.Windows.Automation.Text.TextPatternRange
Public Function FindAttribute (attribute As AutomationTextAttribute, value As Object, backward As Boolean) As TextPatternRange

Параметры

attribute
AutomationTextAttribute

Искомый атрибут.

value
Object

Искомое значение атрибута. Это значение должно соответствовать заданному для атрибута типу.

backward
Boolean

Значение true, если вместо первого должно быть возвращено последнее вхождение текстового диапазона; в противном случае — false.

Возвращаемое значение

Текстовый диапазон, имеющий соответствующий атрибут с заданным значением; в противном случае — NULL (Nothing в Visual Basic).

Примеры

 private TextPatternRange RangeFromAttribute(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[] currentSelelction = textpatternPattern.GetSelection();
    // Find 'italic' range
    return currentSelelction[0].FindAttribute(TextPattern.IsItalicAttribute, true, false);
}
Private Function RangeFromAttribute(ByVal target As AutomationElement) As TextPatternRange
    ' Specify the control type we're looking for, in this case 'Document'
    Dim cond As PropertyCondition = New PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Document)

    ' target --> The root AutomationElement.
    Dim textProvider As AutomationElement = target.FindFirst(TreeScope.Descendants, cond)

    Dim textpatternPattern As TextPattern = CType(textProvider.GetCurrentPattern(TextPattern.Pattern), TextPattern)

    If (textpatternPattern Is Nothing) Then
        Console.WriteLine("Root element does not contain a descendant that supports TextPattern.")
        Return Nothing
    End If
    Dim currentSelection As TextPatternRange() = textpatternPattern.GetSelection()
    Return currentSelection(0).FindAttribute(TextPattern.IsItalicAttribute, True, False)
End Function

Комментарии

Между скрытым и видимым текстом нет различий. Клиенты автоматизации пользовательского интерфейса могут использовать IsHiddenAttribute для проверка видимости текста.

Примечание

Используйте DocumentRange для поиска во всем документе.

Применяется к

См. также раздел