Sdílet prostřednictvím


AutomationElement.FindAll(TreeScope, Condition) Metoda

Definice

Vrátí všechny AutomationElement objekty, které splňují zadanou podmínku.

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

Parametry

scope
TreeScope

Bitové kombinace hodnot, které určují rozsah hledání.

condition
Condition

Objekt obsahující kritéria, která se mají shodovat.

Návraty

AutomationElementCollection

Kolekce objektů, které splňují zadanou podmínku. Pokud neexistují žádné shody, vrátí se prázdná kolekce.

Příklady

Následující příklad ukazuje, jak použít FindAll k vyhledání všech povolených tlačítek v okně.

/// <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

Poznámky

Obor vyhledávání je relativní k elementu, na kterém je volána metoda. Prvky se vrátí v pořadí, ve kterém byly ve stromu zjištěny.

Při hledání oken nejvyšší úrovně na ploše nezapomeňte zadat Children , scopenikoli Descendants. Hledání celého podstromu plochy by mohlo iterovat tisíce položek a vést k přetečení zásobníku.

Pokud se klientská aplikace může pokusit najít prvky ve vlastním uživatelském rozhraní, musíte provést všechna model UI Automation volání na samostatné vlákno.

Platí pro

Viz také