Typografie in Windows Presentation Foundation

Aktualisiert: November 2007

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
  • Ressourcen
  • Verwandte Abschnitte

Verbesserte Textqualität und Leistung

Text in WPF wird mit Microsoft ClearType gerendert. Damit wird die Übersichtlichkeit und die Lesbarkeit von Texten optimiert. 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

Text mit ClearType-Y-Richtung-Antialiasing

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

Diagramm der Text-Rendering-Pipeline

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

Text mit alternativen OpenType-Stilsymbolen

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

Text mit OpenType-Standard- und Ziersymbolen

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 Windows Presentation Foundation.

  • 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 Schriftartfamilie 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 graphische Benutzeroberfläche (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 Benutzeroberfläche (user interface, UI)-Steuerelemente wie Label, TextBlock und TextBox bereit. Diese Steuerelemente stellen innerhalb einer Anwendung die grundlegenden Benutzeroberfläche-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 Benutzeroberfläche-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

Textschatten mit Weichheit = 0,25

Im folgenden Beispiel wird ein Text mit einem Schlagschatteneffekt und einem Geräusch versehen.

Text mit Schlagschatten und Geräusch

Textschatten mit Rauschen

Im folgenden Beispiel wird ein Text mit einem Leuchteffekt umgeben.

Text umgeben von einem Leuchteffekt

Textschatten mit einem OuterGlowBitmapEffect

Im folgenden Beispiel wird ein Weichzeichnereffekt auf einen Text angewendet.

Text mit Weichzeichnereffekt

Textschatten mit einem BlurBitmapEffect

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

Skalierter Text mithilfe einer ScaleTransform

Im folgenden Beispiel wird ein entlang der x-Achse verzerrter Text dargestellt.

Text mit SkewTransform

Geneigter Text mithilfe einer SkewTransform

Ein TextEffect-Objekt ist ein Hilfsobjekt, mit dem Text als eine oder mehrere Zeichengruppen in einer Textzeichenfolge behandelt werden kann. Im folgenden Beispiel aus dem Beispiel für TextEffect 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

Bildschirmabbildung des Texteffekts zum Drehen von Text

Verwenden von Flussdokumenten

Zusätzlich zu den allgemeinen Benutzeroberfläche-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 Benutzeroberfläche-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

Bildschirmabbildung des Beispiels für die Verwendung von OpenType-Schriftarten

Weitere Informationen finden Sie unter Dokumente in Windows Presentation Foundation.

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

Mit dem FormattedText-Objekt angezeigter Text

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

Textkontur mit einem linearen Farbverlaufspinsel

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

Text mit unterschiedlichen Farben für Füllung und Strich

Beispiel für die Anwendung eines Bildpinsels auf den Strich

Text mit auf Strich angewendeten Bildpinsel

Beispiel für die Anwendung eines Bildpinsels auf den Strich und die Hervorhebung

Text mit auf Strich angewendeten Bildpinsel

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

Diagramm des Textlayout-Clients und TextFormatter

Weitere Informationen zum Erstellen von benutzerdefinierten Textlayouts finden Sie unter Erweiterte Textformatierung.

Ressourcen

Zum Kennenlernen der OpenType-Features können Sie mit XamlPad Markup erstellen, um mit den verschiedenen typografischen Eigenschaften zu experimentieren. Weitere Informationen finden Sie unter XAMLPad.

Testen von OpenType-Schriftarten mit XamlPad

XamlPad mit OpenType-Funktionen

Siehe auch

Konzepte

Übersicht über ClearType

Features für OpenType-Schriftarten

Zeichnen von formatiertem Text

Erweiterte Textformatierung

Optimieren der Leistung: Text

XAMLPad

Referenz

FormattedText

TextFormatter

Weitere Ressourcen

Microsoft-Typografie