Benutzeroberflächenautomatisierungs-Eigenschaften für Clients

Hinweis

Diese Dokumentation ist für .NET Framework-Entwickler vorgesehen, die die verwalteten UI Automation-Klassen verwenden möchten, die im System.Windows.Automation-Namespace definiert sind. Aktuelle Informationen zur UI Automationfinden Sie auf der Seite zur Windows-Automatisierungs-API: UI-Automatisierung.

In dieser Übersicht werden UI Automation -Eigenschaften vorgestellt, die für Benutzeroberflächenautomatisierungs-Clientanwendungen verfügbar gemacht werden.

Eigenschaften von AutomationElement -Objekten enthalten Informationen über user interface (UI) -Elemente, in der Regel Steuerelemente. Die Eigenschaften eines AutomationElement sind generisch, das heißt, nicht spezifisch für einen Steuerelementtyp. Viele dieser Eigenschaften werden in der AutomationElement.AutomationElementInformation -Struktur verfügbar gemacht.

Steuerelementmuster verfügen auch über Eigenschaften. Die Eigenschaften von Steuerelementmustern sind für das Muster spezifisch. ScrollPattern enthält z. B. Eigenschaften, mit deren Hilfe eine Clientanwendung ermitteln kann, ob ein Fenster über vertikale oder horizontale Bildlaufleisten verfügt, und welche Ansichtsgrößen und Bildlaufpositionen aktuell verwendet werden. Steuerelementmuster machen alle Eigenschaften durch eine Struktur verfügbar, z. B. durch ScrollPattern.ScrollPatternInformation.

UI Automation -Eigenschaften sind schreibgeschützt. Um Eigenschaften eines Steuerelements festzulegen, müssen Sie die Methoden des entsprechenden Steuerelementmusters verwenden. Verwenden Sie z. B. Scroll , um die Positionswerte eines Bildlauffensters zu ändern.

Um die Leistung zu verbessern, können Eigenschaftswerte von Steuerelementen und Steuerelementmustern zwischengespeichert werden, wenn AutomationElement -Objekte abgerufen werden. Weitere Informationen finden Sie unter Caching in Benutzeroberflächenautomatisierungs-Clients.

Eigenschaften-IDs

Eigenschafts Bezeichner (IDs) sind eindeutige, Konstante Werte, die in-Objekten gekapselt sind AutomationProperty . Benutzeroberflächenautomatisierungs-Client Anwendungen erhalten diese IDs aus der- AutomationElement Klasse oder von der entsprechenden Steuerelement Muster Klasse, z ScrollPattern . b.. Benutzeroberflächenautomatisierungs-Anbieter rufen sie aus AutomationElementIdentifiers oder aus einer der Klassen von Steuerelementmuster-IDs ab, z. B. aus ScrollPatternIdentifiers.

Die numerische Id einer AutomationProperty wird von Anbietern zum Identifizieren von Eigenschaften verwendet, die in der IRawElementProviderSimple.GetPropertyValue -Methode abgefragt werden. Im Allgemeinen müssen Clientanwendungen die Idnicht prüfen. Der ProgrammaticName wird nur zum Debuggen und für Diagnosezwecke verwendet.

Eigenschaftsbedingungen

Die Eigenschaften-IDs werden zum Erstellen PropertyCondition von Objekten verwendet, die zum Suchen von Objekten verwendet werden AutomationElement . Sie möchten z. B. ein AutomationElement mit einem bestimmten Namen oder alle aktivierten Steuerelemente suchen. Jede PropertyCondition gibt eine AutomationProperty -ID und den Wert an, mit dem die Eigenschaft übereinstimmen muss.

Weitere Informationen finden Sie unter den folgenden Referenzthemen:

Abrufen von Eigenschaften

Einige Eigenschaften von AutomationElement und alle Eigenschaften einer Steuerelementmusterklasse werden als geschachtelte Eigenschaften der Current -Eigenschaft oder der Cached -Eigenschaft des AutomationElement oder des Steuerelementmusterobjekts verfügbar gemacht.

Darüber hinaus kann jedes AutomationElement oder jede Steuerelementmustereigenschaft, einschließlich von Eigenschaften, die in der Cached -Struktur oder in der Current -Struktur nicht verfügbar sind, mit einer der folgenden Methoden abgerufen werden:

Diese Methoden bieten eine etwas bessere Leistung sowie Zugriff auf sämtliche Eigenschaften.

Im folgenden Codebeispiel werden die beiden Möglichkeiten zum Abrufen einer Eigenschaft eines AutomationElementveranschaulicht.

// elementList is an AutomationElement.

// The following two calls are equivalent.
string name = elementList.Current.Name;
name = elementList.GetCurrentPropertyValue(AutomationElement.NameProperty) as string;
' elementList is an AutomationElement.
' The following two calls are equivalent.
Dim name As String = elementList.Current.Name
name = CStr(elementList.GetCurrentPropertyValue(AutomationElement.NameProperty))

Um Eigenschaften von Steuerelementmustern abzurufen, die von AutomationElementunterstützt werden, muss das Steuerelementmusterobjekt nicht abgerufen werden. Übergeben Sie einfach eine der Mustereigenschaften-IDs an die Methode.

Im folgenden Codebeispiel werden die beiden Möglichkeiten zum Abrufen einer Eigenschaft eines Steuerelementmusters veranschaulicht.

// elementList is an AutomationElement representing a list box.
// Error-checking is omitted. Assume that elementList is known to support SelectionPattern.

SelectionPattern selectPattern =
    elementList.GetCurrentPattern(SelectionPattern.Pattern) as SelectionPattern;
bool isMultipleSelect = selectPattern.Current.CanSelectMultiple;

// The following call is equivalent to the one above.
isMultipleSelect = (bool)
    elementList.GetCurrentPropertyValue(SelectionPattern.CanSelectMultipleProperty);
' elementList is an AutomationElement representing a list box.
' Error-checking is omitted. Assume that elementList is known to support SelectionPattern.
Dim selectPattern As SelectionPattern = _
    DirectCast(elementList.GetCurrentPattern(SelectionPattern.Pattern), SelectionPattern)
Dim isMultipleSelect As Boolean = selectPattern.Current.CanSelectMultiple

' The following call is equivalent to the one above.
isMultipleSelect = CBool(elementList.GetCurrentPropertyValue(SelectionPattern.CanSelectMultipleProperty))

Die Get -Methoden geben ein Objectzurück. Die Anwendung muss das zurückgegebene Objekt in den richtigen Typ umwandeln, bevor der Wert verwendet wird.

Standardeigenschaftswerte

Wenn ein Benutzeroberflächenautomatisierungs-Anbieter eine Eigenschaft nicht implementiert, kann das UI Automation -System einen Standardwert bereitstellen. Wenn der Anbieter für ein Steuerelement die durch HelpTextPropertybezeichnete Eigenschaft z. B. nicht unterstützt, gibt UI Automation eine leere Zeichenfolge zurück. Wenn der Anbieter die durch IsDockPatternAvailablePropertybezeichnete Eigenschaft nicht unterstützt, gibt UI Automation entsprechend falsezurück.

Sie können dieses Verhalten ändern, indem Sie die AutomationElement.GetCachedPropertyValue -Methodenüberladung und die AutomationElement.GetCurrentPropertyValue -Methodenüberladung verwenden. Wenn Sie true als zweiten Parameter angeben, gibt UI Automation keinen Standardwert zurück, sondern stattdessen den speziellen Wert NotSupported.

Mit dem folgenden Beispielcode wird versucht, eine Eigenschaft aus einem Element abzurufen. Wenn die Eigenschaft nicht unterstützt wird, wird stattdessen ein von der Anwendung definierter Wert verwendet.

// elementList is an AutomationElement.
object help = elementList.GetCurrentPropertyValue(AutomationElement.HelpTextProperty, true);
if (help == AutomationElement.NotSupported)
{
    help = "No help available";
}
string helpText = (string)help;
' elementList is an AutomationElement.
Dim help As Object = elementList.GetCurrentPropertyValue(AutomationElement.HelpTextProperty, True)
If help Is AutomationElement.NotSupported Then
    help = "No help available"
End If
Dim helpText As String = CStr(help)

Um zu ermitteln, welche Eigenschaften von einem Element unterstützt werden, verwenden Sie GetSupportedProperties. Dies gibt ein Array von AutomationProperty -IDs zurück.

Durch geänderte Eigenschaften ausgelöste Ereignisse

Wenn sich ein Eigenschaftswert eines AutomationElement oder Steuerelementmusters ändert, wird ein Ereignis ausgelöst. Eine Anwendung kann solche Ereignisse abonnieren, indem AddAutomationPropertyChangedEventHandleraufgerufen wird, worin als letzter Parameter ein Array von AutomationProperty -IDs bereitgestellt wird, mit dem die betreffenden Eigenschaften angegeben werden.

Im AutomationPropertyChangedEventHandlerkönnen Sie die geänderte Eigenschaft ermitteln, indem Sie das Property -Element der Ereignisargumente überprüfen. Die Argumente enthalten auch die alten und neuen Werte der geänderten UI Automation -Eigenschaft. Diese Werte sind vom Typ Object und müssen in den richtigen Typ umgewandelt werden, bevor sie verwendet werden.

Zusätzliche AutomationElement-Eigenschaften

Neben der Current -Eigenschaftenstruktur und der Cached -Eigenschaftenstruktur besitzt AutomationElement die folgenden Eigenschaften, die über einfache Eigenschaftenaccessoren abgerufen werden.

Eigenschaft BESCHREIBUNG
CachedChildren Eine Auflistung von untergeordneten AutomationElement -Objekten im Cache.
CachedParent Ein übergeordnetes AutomationElement -Objekt im Cache.
FocusedElement (Statische Eigenschaft) Das AutomationElement , das den Eingabefokus besitzt.
RootElement (Statische Eigenschaft) Das Stamm- AutomationElement.

Weitere Informationen