/Muster textbeschreibung prosa

Die korrekte Unterstützung der Einfügemarke ist für viele Clientanwendungen von entscheidender Bedeutung, einschließlich der Anwendungen, die nicht auf der Benutzeroberflächenautomatisierung basieren. Im Text-Steuerelementmuster wird die Einfügemarke durch einen degenerierten (leeren) Textbereich an der Position der Systemeinfügemarke dargestellt. Wenn die Einfügemarke verschoben wird, sollte ein Steuerelement das TextSelectionChanged-Ereignis (UIA_Text_TextSelectionChangedEventId) aushebe. Einige Clientanwendungen sind von diesem Ereignis abhängig, um den Speicherort der Einfügemarke zu überwachen und die Textauswahl nachzuverfolgen. Das Textsteuerungsmuster basiert auf prozessübergreifenden Aufrufen für den größten Teil seiner Funktionalität, sodass es keinen Caching-Mechanismus zur Verbesserung der Leistung beim Verarbeiten von Inhalten bereitstellt. Auf andere Steuerelementmuster in Microsoft UI Automation kann mithilfe der IUIAutomationElement::GetCachedPattern-Methode zugegriffen werden. Wenn der Textbereich am Anfang einer Texteinheit beginnt und am Anfang oder vor der nächsten Texteinheitsgrenze endet, wird der Endpunkt auf die nächste Texteinheitsgrenze verschoben (siehe 1 und 2 im vorherigen Diagramm). Die Bildschirmkoordinaten der Mitte der System-Caret-Bitmap sollten immer mit der Position der Einfügemarke übereinstimmen. Auf diese Weise kann ein Client die Einfügebildschirmkoordinaten in einem Aufruf von ITextProvider::RangeFromPoint verwenden, um einen Textbereich abzurufen, der die Position der Einfügemarke genau darstellt. Wenn die ITextRangeProvider::Move-Methode aufgerufen wird, normalisiert der Anbieter den Textbereich durch die angegebene Texteinheit und verwendet dieselbe Normalisierungslogik wie die ExpandToEnclosingUnit-Methode.

Anschließend verschiebt der Anbieter den Bereich um die angegebene Anzahl von Texteinheiten nach hinten oder vorwärts. Beim Verschieben des Bereichs sollte der Anbieter die Grenzen aller eingebetteten Objekte im Text ignorieren. (Die Einheitengrenze selbst kann jedoch durch das Vorhandensein eines eingebetteten Objekts beeinträchtigt werden). Das folgende Diagramm veranschaulicht, wie die Move-Methode einen Textbereich Einheit für Einheit über eingebettete Objekte und Texteinheitengrenzen verschiebt. Wenn möglich, sollte eine Anbieterimplementierung von ITextProvider und ITextRangeProvider den gesamten Text eines Dokuments unterstützen, einschließlich aller Texte außerhalb des Ansichtsfensters. Für Off-Screen-Text oder eingebettete Objekte, die virtualisiert sind, sollten Anbieter das VirtualizedItem-Steuerelementmuster (IVirtualizedItemProvider) unterstützen. Wenn ein eingebettetes Objekt einen Textbereich umfasst, sollte der Nur-Text den inneren Text des Objekts enthalten, jedoch nicht den alternativen Text (die Namenseigenschaft des eingebetteten Objekts), da er möglicherweise nicht mit dem beschreibenden inneren Text übereinstimmt. Weitere Informationen finden Sie unter Wie die Benutzeroberflächenautomatisierung eingebettete Objekte verfügbar macht. Wenn ein Steuerelement markierten Text enthält, bietet der aktuelle Entwurf des Textsteuerelementmusters keine Möglichkeit, die Position der Einfügemarke direkt einem bestimmten Textbereich zuzuordnen. Der Anbieter muss die Textauswahl nachverfolgen und die Position der Einfügemarke entsprechend festlegen. Da die Textauswahl in der Regel durch Verschieben der Einfügemarke erfolgt, während Die UMSCHALTtaste oder STRG-Taste gedrückt wird, oder beides, kann ein Anbieter die Textauswahl nachverfolgen, indem er den Status dieser Schlüssel überprüft, wenn sich die Auswahl ändert.

Wenn möglich, sollte ein Anbieter sicherstellen, dass alle Textänderungen, z. B. Löschungen, Einfügungen und Verschiebungen, im zugeordneten Textbereich widergespiegelt werden. Wenn eine Aktualisierung des Textbereichs nicht möglich ist, sollte der Anbieter ein UIA_Text_TextChangedEventId Ereignis ausrichten, um Clients darüber zu informieren, dass der Textbereich nicht mehr gültig ist und ein neuer bereich abgerufen werden muss.

By | 2020-07-29T15:09:56+00:00 July 29th, 2020|Uncategorized|
Help-Desk