AutomationElement.FindAll(TreeScope, Condition) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Restituisce tutti gli oggetti AutomationElement che soddisfano la condizione specificata.
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
Parametri
- scope
- TreeScope
Combinazione bit per bit di valori che specifica l'ambito della ricerca.
- condition
- Condition
Oggetto contenente i criteri da soddisfare.
Restituisce
Raccolta di oggetti che soddisfa la condizione specificata. Se non sono presenti corrispondenze, viene restituita una raccolta vuota.
Esempio
Nell'esempio seguente viene illustrato come usare FindAll per individuare tutti i pulsanti abilitati in una finestra.
/// <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
Commenti
L'ambito della ricerca è relativo all'elemento in cui viene chiamato il metodo. Gli elementi vengono restituiti nell'ordine in cui sono stati rilevati nell'albero.
Quando si cerca una finestra di primo livello sul desktop, assicurarsi di specificare Children in scope
, non Descendants. Una ricerca attraverso l'intero sottoalbero del desktop potrebbe scorrere migliaia di elementi e portare a un overflow dello stack.
Se l'applicazione client potrebbe provare a trovare elementi nella propria interfaccia utente, è necessario eseguire tutte le chiamate Automazione interfaccia utente in un thread separato.