Typografie in WPF
In diesem Thema werden die wichtigsten typografischen Features von WPF eingeführt. Diese Features umfassen verbesserte Qualität und Leistung beim Rendern von Text, Unterstützung von OpenType-Typografie, verbesserten internationalen Text, verbesserte Unterstützung für Schriftarten sowie neue Text-Anwendungsprogrammierschnittstellen (APIs).
Dieses Thema enthält folgende Abschnitte.
- Verbesserte Textqualität und Leistung
- Umfangreiche Typografie
- Verbesserte Unterstützung von internationalem Text
- Verbesserte Schriftartunterstützung
- Neue Text-APIs
- Verwandte Abschnitte
Verbesserte Textqualität und Leistung
Text in WPF wird mit Microsoft ClearType gerendert. Damit wird die Übersichtlichkeit und die Lesbarkeit von Texten verbessert. ClearType ist eine von Microsoft entwickelte Softwaretechnologie, mit der die Lesbarkeit auf LCD-Bildschirmen (Liquid Crystal Displays) verbessert wird, z. B. auf Laptopbildschirmen, Pocket PC-Bildschirmen und Flachbildschirmen. In ClearType werden Teilpixel gerendert. Dies ermöglicht es, den Text mit größerer Wiedergabetreue anzuzeigen, indem Zeichen an Bruchteilen eines Pixels ausgerichtet werden. Die zusätzliche Auflösung verbessert die Schärfe der kleinen Details bei der Textanzeige, wodurch der Text viel leichter über lange Zeiträume gelesen werden kann. Eine weitere Verbesserung von ClearType in WPF ist Antialiasing in y-Richtung, wodurch flache Kurven von Textzeichen oben und unten geglättet werden. Weitere Informationen zu ClearType-Features finden Sie unter Übersicht über ClearType.
Text mit ClearType-Antialiasing in y-Richtung
In WPF kann für die gesamte Textrenderingpipeline Hardwarebeschleunigung verwendet werden, vorausgesetzt, der Computer erfüllt die Mindesthardwareanforderungen. Rendering, das nicht über Hardware ausgeführt werden kann, wird als Softwarerendering ausgeführt. Die Hardwarebeschleunigung hat Auswirkungen auf alle Phasen der Textrenderingpipeline, vom Speichern einzelner Symbole über das Zusammenstellen von Symbolfolgen und das Anwenden von Effekten bis zum Anwenden des ClearType-Blendingalgorithmus auf die angezeigte Endausgabe. Weitere Informationen zur Hardwarebeschleunigung finden Sie unter Renderingebenen für Grafiken.
Diagramm der Textrenderingpipeline
Weiterhin werden für Text mit animierten Zeichen oder Symbolen die von WPF zur Verfügung gestellten Grafikhardwarefunktionen vollständig genutzt. Das Ergebnis ist eine glatte Textanimation.
Umfangreiche Typografie
Das OpenType-Schriftartformat ist eine Erweiterung des TrueType®-Schriftartformats. Das OpenType-Schriftartformat wurde von Microsoft und Adobe gemeinsam entwickelt und bietet eine umfangreiche Auswahl erweiterter typografischer Features. Das Typography-Objekt macht viele der erweiterten Features von OpenType-Schriftarten verfügbar, z. B. alternativer Stil und Schwünge. Im Windows SDK wird eine Reihe von OpenType-Beispielschriftarten zur Verfügung gestellt, die umfangreiche Features aufweisen, z. B. die Schriftarten Pericles und Pescadero. Weitere Informationen finden Sie unter OpenType-Beispielschriftartenpaket.
Die OpenType-Schriftart Pericles enthält zusätzliche Symbole, die als alternativer Stil für den Standardsatz von Symbolen verwendet werden können. Im folgenden Text werden Symbole im alternativen Stil angezeigt.
Text mit OpenType-Symbolen im alternativen Stil
Schwünge sind dekorative Symbole, deren reiche Verzierungen häufig mit Kalligraphie assoziiert werden. Im folgenden Text werden Standard- und Schwungsymbole für die Schriftart Pescadero angezeigt.
Text mit OpenType-Standard- und -Schwungsymbolen
Weitere Details zu den Features von OpenType finden Sie unter Features für OpenType-Schriftarten.
Verbesserte Unterstützung von internationalem Text
WPF bietet durch die folgenden Features verbesserte Unterstützung für internationalen Text:
Automatischer Zeilenabstand in allen Schriftsystemen durch adaptive Maßeinheiten
Umfassende Unterstützung für internationalen Text. Weitere Informationen finden Sie unter Globalisierung für WPF.
Zeilenumbruch, Silbentrennung und Ausrichtung entsprechend der Sprache
Verbesserte Schriftartunterstützung
WPF bietet durch die folgenden Features verbesserte Schriftartunterstützung:
Unicode für jeden Text. Für Schriftartverhalten und -auswahl ist kein Charset bzw. keine Codepage mehr erforderlich.
Von globalen Einstellungen unabhängiges Schriftartverhalten, z. B. vom Systemgebietsschema
Die Typen FontWeight, FontStretch und FontStyle zum Definieren von FontFamily sind getrennt. Dies verbessert die Flexibilität gegenüber der Programmierung in Win32, wo zum Definieren einer Schriftfamilie boolesche Kombinationen aus Kursiv und Fett verwendet werden.
Die Schreibrichtung (horizontal gegenüber vertikal) wird unabhängig vom Schriftartnamen behandelt.
Schriftartverknüpfungen und Ersatzschriftarten in einer portierbaren XML-Datei mit der Technologie für zusammengesetzte Schriftarten. Mit zusammengesetzten Schriftarten können vollständige mehrsprachige Schriftarten erstellt werden. Zusammengesetzte Schriftarten verfügen zudem über einen Mechanismus, der das Anzeigen fehlender Symbole verhindert. Weitere Informationen finden Sie in den Hinweisen zur FontFamily-Klasse.
Erstellen von internationalen Schriftarten aus zusammengesetzten Schriftarten mithilfe mehrerer Einzelsprachenschriftarten. Hierdurch werden bei der Entwicklung von Schriftarten für mehrere Sprachen Ressourcen eingespart.
In ein Dokument eingebettete zusammengesetzte Schriftarten für die Portierung von Dokumenten. Weitere Informationen finden Sie in den Hinweisen zur FontFamily-Klasse.
Neue Text-APIs
WPF enthält mehrere Text-APIs, die Entwickler zum Einfügen von Text in Anwendungen verwenden können. Diese APIs werden in drei Kategorien unterteilt:
Layout und Benutzeroberfläche. Die allgemeinen Textsteuerelemente für graphical user interface (GUI).
Einfache Textzeichnung. Ermöglicht das direkte Zeichnen von Text auf Objekten.
Erweiterte Textformatierung. Ermöglicht das Implementieren eines benutzerdefinierten Textmoduls.
Layout und Benutzeroberfläche
Auf der höchsten Funktionalitätsebene stellen die Text-APIs allgemeine user interface (UI)-Steuerelemente wie Label, TextBlock und TextBox bereit. Diese Steuerelemente stellen innerhalb einer Anwendung die grundlegenden UI-Elemente zur Verfügung und bieten eine einfache Möglichkeit, Text darzustellen und zu bearbeiten. Durch Steuerelemente wie RichTextBox und PasswordBox wird eine erweiterte oder spezialisierte Textbehandlung ermöglicht. Klassen wie TextRange, TextSelection und TextPointer stellen nützliche Textbearbeitungsoptionen bereit. Diese UI-Steuerelemente stellen Eigenschaften wie FontFamily, FontSize und FontStyle bereit, mit denen Sie die zum Rendern des Texts verwendete Schriftart steuern können.
Verwenden von Bitmapeffekten, Transformationen und Texteffekten
Mit WPF können Sie mithilfe von Features wie Bitmapeffekten, Transformationen und Texteffekten visuell interessante Texte erstellen. Im folgenden Beispiel wird ein typischer Schlagschatteneffekt auf einen Text angewendet.
Text mit Schlagschatten
Im folgenden Beispiel wird ein Text mit einem Schlagschatteneffekt und einem Geräusch versehen.
Text mit Schlagschatten und Geräusch
Im folgenden Beispiel wird ein Text mit einem Leuchteffekt umgeben.
Text umgeben von einem Leuchteffekt
Im folgenden Beispiel wird ein Weichzeichnereffekt auf einen Text angewendet.
Text mit Weichzeichnereffekt
Im folgenden Beispiel wird die zweite Textzeile entlang der x-Achse und die dritte Textzeile entlang der y-Achse um je 150 % skaliert.
Text mit ScaleTransform
Im folgenden Beispiel wird ein entlang der x-Achse verzerrter Text dargestellt.
Text mit SkewTransform
Ein TextEffect-Objekt ist ein Hilfsobjekt, mit dem Text als eine oder mehrere Zeichengruppen in einer Textzeichenfolge behandelt werden kann. Im folgenden Beispiel wird ein einzelnes, sich drehendes Zeichen dargestellt. Jedes Zeichen wird unabhängig in Intervallen von 1 Sekunde gedreht.
Beispiel für eine sich drehende Texteffektanimation
Verwenden von Flussdokumenten
Zusätzlich zu den allgemeinen UI-Steuerelementen bietet WPF ein Layoutsteuerelement für die Textpräsentation, das FlowDocument-Element. Das FlowDocument-Element stellt in Verbindung mit dem DocumentViewer-Element ein Steuerelement für große Textmengen mit unterschiedlichen Layoutanforderungen bereit. Layoutsteuerelemente ermöglichen den Zugriff auf erweiterte Typografie durch das Typography-Objekt und schriftartbezogene Eigenschaften anderer UI-Steuerelemente.
Der im folgenden Beispiel dargestellte Text wird in einem FlowDocumentReader gehostet, der Suche, Navigation, Paginierung und Inhaltskalierung unterstützt.
In einem FlowDocumentReader gehosteter Text
Weitere Informationen finden Sie unter Dokumente in WPF.
Einfache Textzeichnung
Text kann direkt auf WPF-Objekte gezeichnet werden, indem die DrawText-Methode des DrawingContext-Objekts verwendet wird. Zum Verwenden dieser Methode erstellen Sie ein FormattedText-Objekt. Dieses Objekt ermöglicht das Zeichnen von mehrzeiligem Text, in dem jedes Zeichen einzeln formatiert werden kann. Die Funktionalität des FormattedText-Objekts umfasst einen großen Teil der Funktionalität der DrawText-Flags der Win32-API. Zudem enthält das FormattedText-Objekt Funktionen wie die Unterstützung von Auslassungszeichen, wodurch Auslassungszeichen angezeigt werden, wenn der Text die Begrenzungen überschreitet. Im folgenden Beispiel wird ein Text gezeigt, auf den mehrere Formatierungen angewendet wurden, unter anderem ein linearer Farbverlauf beim zweiten und dritten Wort.
Angezeigter Text mit FormattedText-Objekt
Formatierter Text kann in Geometry-Objekte umgewandelt werden, sodass Sie andere visuell interessante Textarten erstellen können. Sie können beispielsweise auf Grundlage der Gliederung einer Textzeichenfolge ein Geometry-Objekt erstellen.
Textgliederung mit einem Pinsel für linearen Farbverlauf
Im folgenden Beispiel werden mehrere Möglichkeiten zum Erstellen interessanter visueller Effekte durch Ändern von Strichen, Füllung und Hervorhebung des konvertierten Texts veranschaulicht.
Beispiel für das Festlegen von verschiedenen Farben für Striche und Füllung
Beispiel für die Anwendung eines Bildpinsels auf den Strich
Beispiel für die Anwendung eines Bildpinsels auf den Strich und die Hervorhebung
Weitere Informationen über das FormattedText-Objekt finden Sie unter Zeichnen von formatiertem Text.
Erweiterte Textformatierung
Auf der höchsten Ebene von Text-APIs bietet WPF die Möglichkeit, mithilfe des TextFormatter-Objekts und anderer Typen im System.Windows.Media.TextFormatting-Namespace benutzerdefinierte Textlayouts zu erstellen. Mit dem TextFormatter und den zugeordneten Klassen können Sie benutzerdefinierte Textlayouts implementieren, die Ihre eigenen Definitionen für Zeichenformate, Absatzformatvorlagen, Regeln für den Zeilenumbruch und andere Layoutfeatures für internationalen Text unterstützen. Es ist nur selten sinnvoll, die Standardimplementierung der WPF-Textlayoutunterstützung zu überschreiben. Zum Erstellen eines Steuerelements oder einer Anwendung für die Textbearbeitung kann jedoch eine andere Implementierung als die WPF-Standardimplementierung erforderlich sein.
Anders als eine traditionelle Text-API interagiert der TextFormatter über eine Reihe von Rückrufmethoden mit einem Textlayoutclient. Hierfür ist erforderlich, dass der Client diese Methoden in einer Implementierung der TextSource-Klasse bereitstellt. Im folgenden Diagramm wird die Textlayoutinteraktion zwischen der Clientanwendung und TextFormatter veranschaulicht.
Interaktion zwischen Anwendung und TextFormatter
Weitere Informationen zum Erstellen von benutzerdefinierten Textlayouts finden Sie unter Erweiterte Textformatierung.
Siehe auch
Referenz
Konzepte
Features für OpenType-Schriftarten
Zeichnen von formatiertem Text