AutomationElement.FindAll(TreeScope, Condition) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
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 , scope
nikoli 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.