AutomationElement.FindAll(TreeScope, Condition) Метод

Определение

Возвращает все объекты AutomationElement, которые удовлетворяют заданному условию.

public:
 System::Windows::Automation::AutomationElementCollection ^ FindAll(System::Windows::Automation::TreeScope scope, System::Windows::Automation::Condition ^ condition);
public System.Windows.Automation.AutomationElementCollection FindAll (System.Windows.Automation.TreeScope scope, System.Windows.Automation.Condition condition);
member this.FindAll : System.Windows.Automation.TreeScope * System.Windows.Automation.Condition -> System.Windows.Automation.AutomationElementCollection
Public Function FindAll (scope As TreeScope, condition As Condition) As AutomationElementCollection

Параметры

scope
TreeScope

Битовая комбинация значений, определяющая область поиска.

condition
Condition

Объект, содержащий критерии соответствия.

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

AutomationElementCollection

Коллекция объектов, которая удовлетворяет заданному условию. Если совпадений нет, возвращается пустая коллекция.

Примеры

В следующем примере показано, как использовать FindAll для поиска всех включенных кнопок в окне.

/// <summary>
/// Finds all enabled buttons in the specified window element.
/// </summary>
/// <param name="elementWindowElement">An application or dialog window.</param>
/// <returns>A collection of elements that meet the conditions.</returns>
AutomationElementCollection FindByMultipleConditions(
    AutomationElement elementWindowElement)
{
    if (elementWindowElement == null)
    {
        throw new ArgumentException();
    }
    Condition conditions = new AndCondition(
      new PropertyCondition(AutomationElement.IsEnabledProperty, true),
      new PropertyCondition(AutomationElement.ControlTypeProperty, 
          ControlType.Button)
      );

    // Find all children that match the specified conditions.
    AutomationElementCollection elementCollection = 
        elementWindowElement.FindAll(TreeScope.Children, conditions);
    return elementCollection;
}
''' <summary>
''' Finds all enabled buttons in the specified window element.
''' </summary>
''' <param name="elementWindowElement">An application or dialog window.</param>
''' <returns>A collection of elements that meet the conditions.</returns>
Function FindByMultipleConditions(ByVal elementWindowElement As AutomationElement) As AutomationElementCollection
    If elementWindowElement Is Nothing Then
        Throw New ArgumentException()
    End If
    Dim conditions As New AndCondition(New PropertyCondition(AutomationElement.IsEnabledProperty, True), New PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Button))

    ' Find all children that match the specified conditions.
    Dim elementCollection As AutomationElementCollection = elementWindowElement.FindAll(TreeScope.Children, conditions)
    Return elementCollection

End Function 'FindByMultipleConditions

Комментарии

Область поиска относится к элементу, для которого вызывается метод. Элементы возвращаются в порядке, в котором они были обнаружены в дереве.

При поиске окон верхнего уровня на рабочем столе не забудьте указать Children в scope, а не Descendants. Поиск по всему поддереву рабочего стола может выполнять итерацию по тысячам элементов и привести к переполнению стека.

Если клиентское приложение может попытаться найти элементы в собственном пользовательском интерфейсе, необходимо выполнить все вызовы модель автоматизации пользовательского интерфейса в отдельном потоке.

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

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