Freigeben über


TextFormatter Klasse

Definition

Stellt Dienste zum Formatieren von Text und Umbrechen von Textzeilen mit einem benutzerdefinierten Textlayoutclient bereit.

public ref class TextFormatter abstract : IDisposable
public abstract class TextFormatter : IDisposable
type TextFormatter = class
    interface IDisposable
Public MustInherit Class TextFormatter
Implements IDisposable
Vererbung
TextFormatter
Implementiert

Beispiele

Im folgenden Beispiel wird gezeigt, wie TextFormatter ein Objekt verwendet wird, um formatierte Textzeilen zu generieren, die als Zeichnungsobjekte angezeigt werden können.

// Create a TextFormatter object.
TextFormatter formatter = TextFormatter.Create();

// Create common paragraph property settings.
CustomTextParagraphProperties customTextParagraphProperties
    = new CustomTextParagraphProperties();

// Format each line of text from the text store and draw it.
while (textStorePosition < customTextSource.Text.Length)
{
    // Create a textline from the text store using the TextFormatter object.
    using (TextLine myTextLine = formatter.FormatLine(
        customTextSource,
        textStorePosition,
        96 * 6,
        customTextParagraphProperties,
        null))
    {
        // Draw the formatted text into the drawing context.
        myTextLine.Draw(drawingContext, linePosition, InvertAxes.None);

        // Update the index position in the text store.
        textStorePosition += myTextLine.Length;

        // Update the line position coordinate for the displayed line.
        linePosition.Y += myTextLine.Height;
    }
}
' Create a TextFormatter object.
Dim formatter As TextFormatter = TextFormatter.Create()

' Create common paragraph property settings.
Dim customTextParagraphProperties As New CustomTextParagraphProperties()

' Format each line of text from the text store and draw it.
Do While textStorePosition < customTextSource.Text.Length
    ' Create a textline from the text store using the TextFormatter object.
    Using myTextLine As TextLine = formatter.FormatLine(customTextSource, textStorePosition, 96 * 6, customTextParagraphProperties, Nothing)
        ' Draw the formatted text into the drawing context.
        myTextLine.Draw(drawingContext, linePosition, InvertAxes.None)

        ' Update the index position in the text store.
        textStorePosition += myTextLine.Length

        ' Update the line position coordinate for the displayed line.
        linePosition.Y += myTextLine.Height
    End Using
Loop

Hinweise

TextFormatter ist das WPF-Textmodul, das Dienste für die Formatierung von Text und durchbrechende Textzeilen bereitstellt. TextFormatter kann verschiedene Textzeichenformate und Absatzformatvorlagen verarbeiten und unterstützung für das internationale Textlayout enthalten.

Im Gegensatz zu einer herkömmlichen Text-API interagieren die TextFormatter Interaktionen mit einem Textlayoutclient über eine Reihe von Rückrufmethoden. Er erfordert, dass der Client diese Methoden in einer Implementierung der TextSource Klasse bereitstellt. Das folgende Diagramm veranschaulicht die Interaktion des Textformatierclients und des Textlayoutclients.

Diagramm des Textlayout-Clients und TextFormatter
Interaktion zwischen dem Textlayoutclient und dem TextFormatter-Objekt

Textformatierungsdienste

TextFormatter bietet Unterstützung für Textfeatures, z. B. OpenType-Typografie sowie Unterstützung für Textausführung, Zeilen- und Absatzebenenfeatures.

Die folgende Tabelle ist eine Liste der TextFormatter unterstützten Dienste für Textfeatures.

Funktion Beschreibung
Hintergrundpinsel Das Brush wird für die Hintergrundfarbe verwendet. Weitere Informationen finden Sie unter der BackgroundBrush-Eigenschaft.
Geplante Ausrichtung Bestimmt den Basisabstand der Linie. Weitere Informationen finden Sie unter der BaselineAlignment-Eigenschaft.
Schriftartverknüpfung Stellt die Schriftartverknüpfung über die Verwendung von zusammengesetzten Schriftarten bereit.
Vordergrundpinsel Das Brush wird für die Vordergrundfarbe verwendet. Weitere Informationen finden Sie unter der ForegroundBrush-Eigenschaft.
OpenType Erweiterte OpenType-Typografiefeatures, solche kontextbezogenen Alternativen und Standardligaturen. Sehen Sie sich die TextRunTypographyProperties Klasseneigenschaften an.
Schriftart Bestimmt das Schriftblatt sowie gewichtet, formatieren und dehnen. Weitere Informationen finden Sie unter der Typeface-Eigenschaft.
Text-Dekoration Bietet Unterstützung für TextDecoration Objekte, z. B. Unterstreichung oder Durchschläge. Weitere Informationen finden Sie unter der TextDecorations-Eigenschaft.
Texteffekte Bietet Unterstützung für TextEffect Objekte. Weitere Informationen finden Sie unter der TextEffects-Eigenschaft.

Die folgende Tabelle ist eine Liste der wichtigsten TextFormatter unterstützten Dienste für Funktionen auf Absatzebene.

Funktion Beschreibung
Flow Richtung Flow Richtung des Absatzes - links nach rechts oder rechts nach links. Weitere Informationen finden Sie unter der FlowDirection-Eigenschaft.
Zeileneinzug Einzug für jede Zeile im Absatz. Weitere Informationen finden Sie unter der Indent-Eigenschaft.
Marker Markierungseigenschaften der ersten Zeile im Absatz. Weitere Informationen finden Sie unter der TextMarkerProperties-Eigenschaft.
Absatzeinzug Einzug für die erste Zeile im Absatz. Weitere Informationen finden Sie unter der ParagraphIndent-Eigenschaft.
Registerkarten Enthält Unterstützung für die Ausrichtung von Registerkarten und Registerkartenführern.
Breite Bestimmen Sie die Mindest- und maximale Absatzbreite. Weitere Informationen finden Sie in den FormatMinMaxParagraphWidth Methoden.
Zeilenumbruch Bestimmen Sie, wie Text umschließt, wenn sie den Flussrand erreicht. Weitere Informationen finden Sie unter der TextWrapping-Eigenschaft.

Die folgende Tabelle ist eine Liste der wichtigsten TextFormatter unterstützten Dienste für Funktionen auf Liniesebene.

Funktion Beschreibung
Ausrichtung Textausrichtung - links, rechts, zentriert oder gerechtfertigt. Weitere Informationen finden Sie unter der TextAlignment-Eigenschaft.
Zeilenhöhe Höhe der Linie. Weitere Informationen finden Sie unter der Height-Eigenschaft.
Zeilenabbruch Zeilenabbruchunterstützung. Siehe die Collapse Methode.
Black Box-Maß Stellt die Metriken dar, mit denen das Layout eines Zeichens in einer Geräteschriftart erstellt wird. Weitere Informationen finden Sie unter der CharacterMetrics-Klasse.
Caret Support Caret Navigation und Bearbeitungsunterstützung. Sehen Sie sich die TextLine Zeichentreffeigenschaften an, z GetNextCaretCharacterHit . B. und GetPreviousCaretCharacterHit.

In der folgenden Tabelle handelt es sich um eine Liste der TextFormatter wichtigsten unterstützten Dienste für Textausführungsfeatures.

Funktion Beschreibung
Ausgeblendete Ausführung Bereich von Zeichen, die nicht sichtbar sind. Siehe das TextHidden Objekt.
Breaking Zeilen- und Absatzumbruch.

Konstruktoren

TextFormatter()

Initialisiert eine neue Instanz der TextFormatter-Klasse.

Methoden

Create()

Erstellt eine neue Instanz der TextFormatter-Klasse. Dies ist eine statische Methode.

Create(TextFormattingMode)

Erstellt eine neue Instanz der TextFormatter-Klasse mit dem angegebenen Formatierungsmodus. Dies ist eine statische Methode.

Dispose()

Gibt alle verwalteten und nicht verwalteten Ressourcen frei, die vom TextFormatter-Objekt verwendet werden.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
FormatLine(TextSource, Int32, Double, TextParagraphProperties, TextLineBreak)

Erstellt eine TextLine, die zum Formatieren und Anzeigen von Dokumentinhalt verwendet wird.

FormatLine(TextSource, Int32, Double, TextParagraphProperties, TextLineBreak, TextRunCache)

Erstellt eine TextLine, die zum Formatieren und Anzeigen von Dokumentinhalt verwendet wird.

FormatMinMaxParagraphWidth(TextSource, Int32, TextParagraphProperties)

Gibt einen Wert zurück, der die kleinstmögliche und größtmögliche Absatzbreite darstellt, die den angegebenen Textinhalt vollständig enthalten kann.

FormatMinMaxParagraphWidth(TextSource, Int32, TextParagraphProperties, TextRunCache)

Gibt einen Wert zurück, der die kleinstmögliche und größtmögliche Absatzbreite darstellt, die den angegebenen Textinhalt vollständig enthalten kann.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für

Siehe auch