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 richtet sich an .NET Framework-Entwickler, die die verwalteten Benutzeroberflächenautomatisierungs-Klassen verwenden möchten, die im System.Windows.Automation-Namespace definiert sind. Die neuesten Informationen zur Benutzeroberflächenautomatisierung finden Sie unter Windows Automation API: Benutzeroberflächenautomatisierung.
In dieser Übersicht wird beschrieben, wie Sie die Microsoft-Benutzeroberflächenautomatisierung verwenden, um den Textinhalt, einschließlich Format- und Formatattributen, von Textsteuerelementen in von der Benutzeroberflächenautomatisierung unterstützten Plattformen verfügbar zu machen. Zu diesen Steuerelementen zählen unter anderem TextBox und RichTextBox aus Microsoft .NET Framework sowie deren Win32-Entsprechungen.
Das Verfügbarmachen des Textinhalts eines Steuerelements erfolgt über die Verwendung des TextPattern Steuerelementmusters, das den Inhalt eines Textcontainers als Textstream darstellt. Damit TextPattern Format- und Stilattribute verfügbar machen kann, benötigt es die Unterstützung der TextPatternRange Klasse. TextPatternRange unterstützt TextPattern, indem zusammenhängende oder mehrere, nicht zusammenhängende Textbereiche in einem Textcontainer mithilfe einer Sammlung von Start- und End-Endpunkten dargestellt werden. TextPatternRange unterstützt Funktionen wie Auswahl, Vergleich, Abruf und Traversal.
Hinweis
Die TextPattern Klassen bieten keine Möglichkeit zum Einfügen oder Ändern von Text. Je nach Steuerelement kann dies jedoch durch die Benutzeroberflächenautomatisierung ValuePattern oder über direkte Tastatureingaben erreicht werden. Ein Beispiel finden Sie im TextPattern-Beispiel zum Einfügen von Text .
Die in dieser Übersicht beschriebene Funktionalität ist von entscheidender Bedeutung für Hilfstechnologienanbieter und deren Endbenutzer. Hilfstechnologien können die Benutzeroberflächenautomatisierung verwenden, um vollständige Textformatierungsinformationen für den Benutzer zu sammeln und programmgesteuerte Navigation und Auswahl von Text nach TextUnit (Zeichen, Wort, Zeile oder Absatz) bereitzustellen.
Benutzeroberflächenautomatisierung TextPattern vs. Text Services Framework
Text Services Framework (TSF) ist ein einfaches und skalierbares Systemframework, das natürliche Sprachdienste und erweiterte Texteingaben auf dem Desktop und in Anwendungen ermöglicht. Zusätzlich zur Bereitstellung von Schnittstellen für Anwendungen, um ihren Textspeicher verfügbar zu machen, unterstützt sie auch Metadaten für diesen Textspeicher.
TSF wurde jedoch für Anwendungen entwickelt, die Eingaben in kontextabhängige Szenarien einfügen müssen, wogegen TextPattern eine schreibgeschützte Lösung ist (mit der oben beschriebenen eingeschränkten Problemumgehung), die optimierten Zugriff auf einen Textspeicher für Sprachausgaben und Braille-Geräte ermöglichen soll.
Kurz formuliert können barrierefreie Technologien, die schreibgeschützten Zugriff auf einen Textspeicher erfordern, TextPattern verwenden, für kontextabhängige Eingaben benötigen sie jedoch die komplexere Funktionalität von TSF.
Steuerelementtypen
Text
Das Text-Steuerelement ist das grundlegende Element, das einen Textabschnitt auf dem Bildschirm darstellt.
Ein eigenständiges Textsteuerelement kann als Beschriftung oder statischer Text in einem Formular verwendet werden. Textsteuerelemente können auch in der Struktur eines ListItem, TreeItem oder DataItem enthalten sein.
Hinweis
Textsteuerelemente werden möglicherweise nicht in der Inhaltsansicht der Benutzeroberflächenautomatisierungs-Struktur angezeigt (siehe Übersicht über die Benutzeroberflächenautomatisierungsstruktur). Dies liegt daran, dass Textsteuerelemente häufig durch die Name-Eigenschaft eines anderen Steuerelements angezeigt werden. Beispielsweise wird der Text für die Bezeichnung eines Bearbeitungssteuerelements über die Name-Eigenschaft des Bearbeitungssteuerelements verfügbar gemacht. Da sich das Bearbeitungssteuerelement in der Inhaltsansicht der Benutzeroberflächenautomatisierungs-Struktur befindet, ist es nicht erforderlich, dass sich das Textelement selbst in dieser Ansicht der Benutzeroberflächenautomatisierungs-Struktur befindet. Der einzige Text, der in der Inhaltsansicht angezeigt wird, ist Text, der keine redundanten Informationen ist. Auf diese Weise kann jede Hilfstechnologie schnell nur nach den Informationen filtern, die ihre Benutzer benötigen.
Bearbeiten
Mit Bearbeitungssteuerelementen kann ein Benutzer eine einzelne Textzeile anzeigen und bearbeiten.
Hinweis
Die einzelne Textzeile wird in bestimmten Layoutszenarien möglicherweise umbrochen.
Dokument
Mit Dokumentsteuerelementen können Benutzer in mehreren Textseiten navigieren und Informationen abrufen.
TextPattern-Client-APIs
Typ | BESCHREIBUNG |
---|---|
System.Windows.Automation.TextPattern -Klasse |
Der Einstiegspunkt für das Textmodell der Microsoft-Benutzeroberflächenautomatisierung. Diese Klasse enthält auch die beiden TextPattern Ereignislistener TextSelectionChangedEvent und TextChangedEvent. |
System.Windows.Automation.Text.TextPatternRange -Klasse |
Die Darstellung eines Textbereichs innerhalb eines Textcontainers, der unterstützt TextPattern. Benutzeroberflächenautomatisierungs-Clients sollten bei der aktuellen Gültigkeit eines mit der Verwendung TextPatternRangeerstellten Textbereichs vorsichtig sein. Wenn der ursprüngliche Text im Textsteuerelement vollständig durch neuen Text ersetzt wird, wird der aktuelle Textbereich ungültig. Der Textbereich hat jedoch möglicherweise noch einige Gültigkeit, wenn nur ein Teil des ursprünglichen Texts geändert wird und die zugrunde liegende Textsteuerung ihren Textzeiger mit Verankerungen (oder Endpunkten) handhabt, statt mit absoluter Zeichenpositionierung. Clients können eine TextChangedEvent überwachen, um Benachrichtigungen über Änderungen zu erhalten, die an dem von ihnen verwendeten Textinhalt vorgenommen wurden. |
System.Windows.Automation.AutomationTextAttribute -Klasse |
Wird verwendet, um die Formatierungsattribute eines Textbereichs zu identifizieren. |
TextPattern-Anbieter-APIs
UI-Elemente oder -Steuerelemente, die TextPattern durch die Implementierung der ITextProvider und ITextRangeProvider Schnittstellen entweder nativ oder über Microsoft UI Automation-Proxys unterstützen, sind in der Lage, detaillierte Attributinformationen für jeden enthaltenen Text bereitzustellen und bieten darüber hinaus robuste Navigationsmöglichkeiten.
Ein TextPattern Anbieter muss nicht alle Textattribute unterstützen, wenn das Steuerelement keine Unterstützung für bestimmte Attribute bietet.
Ein TextPattern Anbieter muss die GetSelection- und Select-Funktionen unterstützen, wenn das Steuerelement die Textauswahl oder die Platzierung des Textcursors (oder System-Caret) innerhalb des Textbereichs unterstützt. Wenn das Steuerelement diese Funktionalität nicht unterstützt, muss es keine dieser Methoden unterstützen. Das Steuerelement muss jedoch den Von ihr unterstützten Textauswahltyp durch Implementieren der SupportedTextSelection Eigenschaft verfügbar machen.
Ein TextPattern Anbieter muss immer die TextUnit Konstanten Character und Document sowie alle anderen TextUnit Konstanten unterstützen, die er unterstützen kann.
Hinweis
Der Anbieter kann die Unterstützung für eine bestimmte TextUnit überspringen, indem er auf die nächstgrößte unterstützte TextUnit in der folgenden Reihenfolge zurückgreift: Character, Format, Word, Line, Paragraph, Page und Document.
Programmierschnittstelle (API) | BESCHREIBUNG |
---|---|
ITextProvider -Schnittstelle |
Macht Methoden, Eigenschaften und Attribute verfügbar, die TextPattern in Clientanwendungen unterstützen (siehe ITextProvider). |
ITextRangeProvider -Schnittstelle |
Stellt eine Textspanne in einem Textanbieter dar (siehe ITextRangeProvider). |
System.Windows.Automation.TextPatternIdentifiers -Klasse |
Enthält Werte, die als Bezeichner für Textanbieter verwendet werden (siehe TextPatternIdentifiers). |
Sicherheit
Die Architektur der Benutzeroberflächenautomatisierung wurde unter Berücksichtigung der Sicherheit entwickelt (siehe Übersicht über die Sicherheit der Benutzeroberflächenautomatisierung). Die in dieser Übersicht beschriebenen TextPattern-Klassen erfordern jedoch einige spezifische Sicherheitsaspekte.
Textanbieter der Microsoft-Benutzeroberflächenautomatisierung stellen schreibgeschützte Schnittstellen bereit und bieten keine Möglichkeit, den vorhandenen Text in einem Steuerelement zu ändern.
Benutzeroberflächenautomatisierungs-Clients können nur Microsoft-Benutzeroberflächenautomatisierung verwenden, wenn sie vollständig "vertrauenswürdig" sind. Ein Beispiel hierfür wäre der geschützte Anmeldedesktop, bei dem nur bekannte und vertrauenswürdige Anwendungen ausgeführt werden können.
Entwickler von Benutzeroberflächenautomatisierungs-Anbietern sollten sich bewusst sein, dass alle Informationen, die sie in ihren Steuerelementen über die Microsoft-Benutzeroberflächenautomatisierung verfügbar machen möchten, im Wesentlichen öffentlich und vollständig durch anderen Code zugänglich sind. Die Microsoft-Benutzeroberflächenautomatisierung bemüht sich nicht, die Vertrauenswürdigkeit eines Benutzeroberflächenautomatisierungs-Clients zu ermitteln, und daher sollte der Anbieter der Benutzeroberflächenautomatisierung geschützte Inhalte oder vertrauliche Textinformationen (z. B. Kennwortfelder) nicht verfügbar machen.
Eine der wichtigsten Änderungen der Sicherheit für Windows Vista wird allgemein als "Sichere Eingabe" bezeichnet, die Technologien wie "Am wenigsten privilegierte (oder eingeschränkte) Benutzerkonten (LUA) und UI Privilege Level Isolation (UIPI) umfasst.
UIPI verhindert, dass ein Programm ein anderes "privilegiertes" Programm steuert und/oder überwacht, wodurch prozessübergreifende Fensternachrichtenangriffe verhindert werden, die Benutzereingaben spoofen.
LUA legt Grenzwerte für die Berechtigungen von Anwendungen fest, die von Benutzern in der Gruppe "Administratoren" ausgeführt werden. Anwendungen verfügen nicht unbedingt über Administratorrechte, sondern werden stattdessen mit den geringsten Berechtigungen ausgeführt. Daher kann es in LUA-Szenarien einige Einschränkungen geben. Vor allem Zeichenfolgenkürzung (einschließlich TextPattern-Zeichenfolgen), wo es möglicherweise erforderlich sein kann, die Größe von Zeichenfolgen zu begrenzen, die von Anwendungen auf Administratorebene abgerufen werden, sodass sie nicht gezwungen sind, Speicher zum Zeitpunkt der Deaktivierung der Anwendung zuzuweisen.
Leistung
Da TextPattern auf prozessübergreifende Aufrufe für die meisten Funktionen angewiesen ist, bietet es keinen Zwischenspeicherungsmechanismus, um die Leistung beim Verarbeiten von Inhalten zu verbessern. Dies unterscheidet sich von anderen Steuerelementmustern in der Microsoft-Benutzeroberflächenautomatisierung, auf die mit den GetCachedPattern Methoden oder TryGetCachedPattern Methoden zugegriffen werden kann.
Eine Taktik zur Verbesserung der Leistung besteht darin, sicherzustellen, dass Benutzeroberflächenautomatisierungs-Clients versuchen, mäßig große Textblöcke mithilfe von GetText abzurufen. GetText(1)-Aufrufe verursachen z. B. prozessübergreifende Treffer für jedes Zeichen, während ein GetText(-1)-Aufruf einen prozessübergreifenden Treffer verursacht, aber je nach Größe des Textanbieters eine hohe Latenz haben kann.
TextPattern-Terminologie
Attribut
Ein Formatierungsmerkmal eines Textbereichs (z. B IsItalicAttribute . oder FontNameAttribute).
Degenerierter Bereich
Ein degenerierter Bereich ist ein leerer oder nullzeichenbasierter Textbereich. Im Zusammenhang mit TextPattern-Steuerelementmustern wird die Einfügemarke (bzw. das Systemeinfügezeichen) als degenerierter Bereich angesehen. Wenn kein Text ausgewählt ist, gibt GetSelection einen degenerierten Bereich an der Texteinfügemarke und RangeFromPoint einen degenerierten Bereich als seinen Startpunkt zurück.
RangeFromChild und GetVisibleRanges gibt möglicherweise degenerate Bereiche zurück, wenn der Textanbieter keine Textbereiche finden kann, die der angegebenen Bedingung entsprechen. Dieser degenerierte Bereich kann als Startpunkt im Textanbieter verwendet werden.
FindText und FindAttribute geben einen Nullverweis (Nothing
in Microsoft Visual Basic .NET) zurück, um Verwirrung zwischen einem entdeckten Bereich und einem degenerierten Bereich zu vermeiden.
Eingebettetes Objekt
Es gibt zwei Typen eingebetteter Objekte im Textmodell der Benutzeroberflächenautomatisierung. Sie bestehen aus textbasierten Inhaltselementen wie Links oder Tabellen sowie Steuerelementelementen wie Bildern und Schaltflächen. Ausführlichere Informationen finden Sie unter Access Embedded Objects Using UI Automation.
Endpunkt
Der absolute Start oder End Punkt eines Textbereichs innerhalb eines Textcontainers.
Im Folgenden wird eine Reihe von Anfangs- und Endpunkten veranschaulicht.
TextRange
Eine Darstellung einer Textspanne mit Anfangs- und Endpunkten in einem Textcontainer, einschließlich aller zugehörigen Attribute und Funktionen.
TextUnit
Eine vordefinierte Texteinheit (Zeichen, Wort, Zeile oder Absatz), die zum Navigieren durch logische Segmente eines Textbereichs verwendet wird.
Siehe auch
- Steuerelementmuster für Benutzeroberflächenautomatisierung für Clients
- Übersicht über Steuerelementmuster für Benutzeroberflächenautomatisierung
- UI-Automatisierungsstruktur Übersicht
- Verwenden der Zwischenspeicherung in der Benutzeroberflächenautomatisierung
- Unterstützung von Steuerelementmustern in einem Benutzeroberflächenautomatisierungs-Anbieter
- Steuerelementmusterzuordnung für Benutzeroberflächenautomatisierungs-Clients
- Text services Framework-