AutomationElement.FindAll(TreeScope, Condition) AutomationElement.FindAll(TreeScope, Condition) AutomationElement.FindAll(TreeScope, Condition) Method

Definition

Gibt alle AutomationElement-Objekte zurück, die die angegebene Bedingung erfüllen.Returns all AutomationElement objects that satisfy the specified condition.

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

Parameter

scope
TreeScope TreeScope TreeScope

Eine bitweise Kombination von Werten, die den Umfang der Suche angibt.A bitwise combination of values that specifies the scope of the search.

condition
Condition Condition Condition

Das Objekt, das die zu erfüllenden Kriterien enthält.The object containing the criteria to match.

Gibt zurück

Eine Auflistung von Objekten, die die angegebene Bedingung erfüllt.A collection of objects that satisfies the specified condition. Wenn keine Übereinstimmungen vorhanden sind, wird eine leere Auflistung zurückgegeben.If there are no matches, an empty collection is returned.

Beispiele

Im folgenden Beispiel wird gezeigt, wie FindAll verwendet wird, um alle aktivierten Schaltflächen in einem Fenster zu suchen.The following example shows how to use FindAll to locate all enabled buttons in a window.

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

Hinweise

Der Suchbereich ist relativ zu dem Element, für das die Methode aufgerufen wird.The scope of the search is relative to the element on which the method is called. Elemente werden in der Reihenfolge zurückgegeben, in der Sie in der Struktur gefunden wurden.Elements are returned in the order in which they were encountered in the tree.

Wenn Sie nach Fenstern der obersten Ebene auf dem Desktop suchen, achten Sie darauf Children , scopein anzugeben Descendants, nicht.When searching for top-level windows on the desktop, be sure to specify Children in scope, not Descendants. Eine Suche durch die gesamte Unterstruktur des Desktops könnte Tausende von Elementen durchlaufen und zu einem Stapelüberlauf führen.A search through the entire subtree of the desktop could iterate through thousands of items and lead to a stack overflow.

Wenn Ihre Client Anwendung möglicherweise versucht, Elemente in ihrer eigenen Benutzeroberfläche zu finden, müssen Sie BenutzeroberflächenautomatisierungUI Automation alle Aufrufe in einem separaten Thread durchführen.If your client application might try to find elements in its own user interface, you must make all BenutzeroberflächenautomatisierungUI Automation calls on a separate thread.

Gilt für:

Siehe auch