Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hinweis
Diese Dokumentation ist für .NET Framework-Entwickler konzipiert, die die verwalteten Klassen zur Automatisierung der Benutzeroberfläche verwenden möchten, die im Namespace System.Windows.Automation definiert sind. Aktuelle Informationen zur Automatisierung der Benutzeroberfläche finden Sie auf der Seite zur Windows-Automatisierungs-API: Benutzeroberflächenautomatisierung.
In dieser Übersicht wird beschrieben, wie von der Microsoft-Benutzeroberflächenautomatisierung eingebettete Objekte oder untergeordnete Elemente innerhalb eines Textdokuments oder Containers verfügbar gemacht werden.
In der Benutzeroberflächenautomatisierung ist eingebettetes Objekt ein Element mit nicht textbezogenen Grenzen, z. B. Bild, Link, Tabelle oder ein Dokumenttyp wie ein Microsoft Excel-Arbeitsblatt oder eine Microsoft Windows-Mediendatei. Dies weicht von der Standarddefinition ab, in der Elemente in einer Anwendung erstellt und einer anderen eingebettet bzw. mit einer anderen verknüpft sind. Ob das Objekt innerhalb der ursprünglichen Anwendung bearbeitet werden kann, ist im Kontext der Benutzeroberflächenautomatisierung nicht relevant.
Eingebettete Objekte werden als einzelne Elemente innerhalb der Steuerelementansicht der Struktur für die Benutzeroberflächenautomatisierung behandelt. Sie werden als untergeordnete Elemente des Textcontainers verfügbar gemacht, sodass über dasselbe Model wie bei anderen Steuerelementen in der Benutzeroberflächenautomatisierung auf diese zugegriffen werden kann.
Beispiel eines Textcontainers mit eingebetteten Objekten (Tabelle, Bild und Link)
Beispiel der Inhaltsansicht eines Teils des vorigen Textcontainers
Die TextPattern -Steuerelementmuster-Klasse wird in Verbindung mit der TextPatternRange -Klasse verwendet, um Methoden und Eigenschaften verfügbar zu machen, die das Navigieren und Abfragen von eingebetteten Objekten erleichtern.
Der Textinhalt (oder innere Text) eines Textcontainers und ein eingebettetes Objekt, z. B. ein Link oder eine Tabellenzelle, werden in der Steuerelementansicht und der Inhaltsansicht der Struktur für die Benutzeroberflächenautomatisierung als einzelner, kontinuierlicher Textstream verfügbar gemacht. Objektgrenzen werden dabei ignoriert. Wenn ein Benutzeroberflächenautomatisierungs-Client den Text abruft, um ihn zu lesen, zu interpretieren oder zu analysieren, sollte der Textbereich auf bestimmte Fälle überprüft werden, z. B. auf Tabellen mit Textinhalt oder andere eingebettete Objekte. Dies geschieht durch Aufrufen von GetChildren , um ein AutomationElement für alle eingebetteten Elemente abzurufen, und anschließend durch Aufrufen von RangeFromChild , um einen Textbereich für alle Elemente abzurufen. Dies wird rekursiv ausgeführt, bis der gesamte Textinhalt abgerufen wurde.
Beispiel eines Textstreams mit eingebetteten Objekten und deren Bereichsspannen
Wenn der Inhalt eines Textbereichs durchlaufen werden muss, ist eine Reihe von Hintergrundschritten erforderlich, um die Move -Methode erfolgreich auszuführen.
Der Textbereich ist normalisiert. Dies bedeutet, dass dieser auf einen degenerierten Bereich am Start -Endpunkt reduziert ist, wodurch der End -Endpunkt überflüssig wird. Dieser Schritt ist erforderlich, um Mehrdeutigkeit in Situationen zu beseitigen, in denen ein Textbereich die TextUnit -Grenzen überschreitet, z. B.
{The URL https://www.microsoft.com is embedded in text
, wobei „{“ und „}“ die Endpunkte des Textbereichs darstellen.Der resultierende Bereich wird im DocumentRange zurück an den Anfang der angeforderten TextUnit -Grenze verschoben.
Der Bereich wird um die angeforderte Anzahl von DocumentRange -Grenzen nach vorne oder nach hinten im TextUnit verschoben.
Anschließend wird der Bereich von einem degenerierten Bereichszustand erweitert, indem der End -Endpunkt um eine angeforderte TextUnit -Grenze verschoben wird.
Beispiele für die Anpassung eines Textbereichs für Move() und ExpandToEnclosingUnit()
In den folgenden Abschnitten sind Beispiele für die häufigsten Szenarien dargestellt, in denen eingebettete Objekte verwendet werden.
Legende für die dargestellten Beispiele:
{ = Start
} = End
Beispiel 1: Ein Textbereich, der einen eingebetteten Textlink enthält
{The URL https://www.microsoft.com is embedded in text}.
Aufgerufene Methode | Ergebnis |
---|---|
GetText | Gibt die Zeichenfolge The URL https://www.microsoft.com is embedded in text zurück. |
GetEnclosingElement | Gibt das den Textbereich einschließende, innerste AutomationElement zurück, in diesem Fall das AutomationElement , das den Textanbieter darstellt. |
GetChildren | Gibt ein AutomationElement zurück, das das Linksteuerelement darstellt. |
RangeFromChild , wobei AutomationElement das von der vorherigen GetChildren -Methode zurückgegebene Objekt ist. |
Gibt den Bereich zurück, der https://www.microsoft.com darstellt. |
Beispiel 2: Ein Textbereich, der einen eingebetteten Textlink nur teilweise enthält
Die URL https://{[www]}
ist in Text eingebettet.
Aufgerufene Methode | Ergebnis |
---|---|
GetText | Gibt die Zeichenfolge „www“ zurück. |
GetEnclosingElement | Gibt das den Textbereich einschließende, innerste AutomationElement zurück, in diesem Fall das Linksteuerelement. |
GetChildren | Gibt null zurück, da der Textbereich nicht die gesamte URL-Zeichenfolge umfasst. |
Beispiel 3: Ein Textbereich, der den Inhalt eines Textcontainers nur teilweise enthält. Der Textcontainer enthält einen eingebetteten Textlink, der nicht im Textbereich enthalten ist.
{The URL} [https://www.microsoft.com](https://www.microsoft.com) is embedded in text.
Aufgerufene Methode | Ergebnis |
---|---|
GetText | Gibt die Zeichenfolge „Die URL“ zurück. |
GetEnclosingElement | Gibt das den Textbereich einschließende, innerste AutomationElement zurück, in diesem Fall das AutomationElement , das den Textanbieter darstellt. |
Move mit den Parametern (TextUnit.Word, 1). | Verschiebt den Textbereichsabschnitt nach „http“, da der Text des Links aus einzelnen Wörtern besteht. In diesem Fall wird der Link nicht als einzelnes Objekt behandelt. Die URL {{http}} ist in Text eingebettet. |
Beispiel 1: Ein Textbereich, der ein eingebettetes Bild enthält
{Das Bild ist in Text eingebettet}.
Aufgerufene Methode | Ergebnis |
---|---|
GetText | Gibt die Zeichenfolge „Das Bild ist in den Text eingebettet“ zurück. Ein dem Bild zugeordneter Alternativtext (ALT) kann nicht im Textstream miteingeschlossen werden. |
GetEnclosingElement | Gibt das den Textbereich einschließende, innerste AutomationElement zurück, in diesem Fall das AutomationElement , das den Textanbieter darstellt. |
GetChildren | Gibt ein AutomationElement zurück, das das Bildsteuerelement darstellt. |
RangeFromChild , wobei AutomationElement das von der vorherigen GetChildren -Methode zurückgegebene Objekt ist. | Gibt den degenerierten Bereich zurück, der ![]() |
Beispiel 2: Ein Textbereich, der den Inhalt eines Textcontainers nur teilweise enthält. Der Textcontainer enthält ein eingebettetes Bild, das nicht im Textbereich enthalten ist.
{Das Bild} ist in Text eingebettet.
Aufgerufene Methode | Ergebnis |
---|---|
GetText | Gibt die Zeichenfolge „Das Bild“ zurück. |
GetEnclosingElement | Gibt das den Textbereich einschließende, innerste AutomationElement zurück, in diesem Fall das AutomationElement , das den Textanbieter darstellt. |
Move mit den Parametern (TextUnit.Word, 1). | Verschiebt den Textbereichsabschnitt nach „ist“. Da nur textbasierte eingebettete Objekte als Teil des Textstreams betrachtet werden, hat das Bild in diesem Beispiel keine Auswirkungen auf das Move-Objekt oder dessen Rückgabewert (in diesem Fall 1). |
Zelle mit Bild | Zelle mit Text |
---|---|
![]() |
X |
![]() |
J |
![]() Bild für Z |
Z |
Beispiel 1: Abrufen des Textcontainers aus dem Inhalt einer Zelle
Aufgerufene Methode | Ergebnis |
---|---|
GetItem mit den Parametern (0,0) | Gibt das AutomationElement zurück, das den Inhalt der Tabellenzelle darstellt; in diesem Fall ist das Element ein Textsteuerelement. |
RangeFromChild , wobei AutomationElement das von der vorherigen GetItem -Methode zurückgegebene Objekt ist. |
Gibt den Bereich zurück, der ![]() |
GetEnclosingElement für das von der vorherigen RangeFromChild -Methode zurückgegebene Objekt. |
Gibt das AutomationElement zurück, das die Tabellenzelle darstellt; in diesem Fall ist das Element ein Textsteuerelement, das TableItemPattern unterstützt. |
GetEnclosingElement für das von der vorherigen GetEnclosingElement -Methode zurückgegebene Objekt. |
Gibt das AutomationElement zurück, das die Tabelle darstellt. |
GetEnclosingElement für das von der vorherigen GetEnclosingElement -Methode zurückgegebene Objekt. |
Gibt das AutomationElement zurück, das den Textanbieter darstellt. |
Beispiel 2: Abrufen des Textinhalts einer Zelle
Aufgerufene Methode | Ergebnis |
---|---|
GetItem mit den Parametern {1,1}. | Gibt das AutomationElement zurück, das den Inhalt der Tabellenzelle darstellt; in diesem Fall ist das Element ein Textsteuerelement. |
RangeFromChild , wobei AutomationElement das von der vorherigen GetItem -Methode zurückgegebene Objekt ist. |
Gibt „Y“ zurück. |
- TextPattern
- TextPatternRange
- ITextProvider
- ITextRangeProvider
- Zugreifen auf eingebettete Objekte mit Benutzeroberflächenautomatisierung
- Verfügbarmachen eines Tabelleninhalts durch Benutzeroberflächenautomatisierung
- Durchlaufen von Text mit Benutzeroberflächenautomatisierung
- Beispiel für Suche und Auswahl mit TextPattern