TextFormatter Classe

Definizione

Fornisce servizi per la formattazione del testo e per inserire interruzioni di riga utilizzando un client di layout del testo personalizzato.

public ref class TextFormatter abstract : IDisposable
public abstract class TextFormatter : IDisposable
type TextFormatter = class
    interface IDisposable
Public MustInherit Class TextFormatter
Implements IDisposable
Ereditarietà
TextFormatter
Implementazioni

Esempio

Nell'esempio seguente viene illustrato come usare un TextFormatter oggetto per generare righe formattate di testo che possono essere visualizzate come oggetti di disegno.

// 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

Commenti

TextFormatter è il motore di testo WPF che fornisce servizi per la formattazione del testo e l'interruzione delle righe di testo. TextFormatter può gestire diversi formati di caratteri di testo e stili di paragrafo e include il supporto per il layout di testo internazionale.

A differenza di un'API di testo tradizionale, l'utente TextFormatter interagisce con un client di layout di testo tramite un set di metodi di callback. È necessario che il client fornisca questi metodi in un'implementazione della TextSource classe. Il diagramma seguente illustra l'interazione del client di formattazione del testo e del client di layout di testo.

Diagramma del client del layout di testo e TextFormatter
Interazione tra il client di layout di testo e l'oggetto TextFormatter

Servizi di formattazione del testo

TextFormatter fornisce il supporto per le funzionalità di testo, ad esempio la tipografia OpenType, nonché il supporto per le funzionalità di esecuzione del testo, riga e livello di paragrafo.

La tabella seguente è un elenco dei TextFormatter principali servizi supportati per le funzionalità di testo.

Funzionalità Descrizione
Pennello di sfondo Oggetto Brush utilizzato per il colore di sfondo. Vedere la proprietà BackgroundBrush.
Allineamento della linea di base Determina la distanza di base della linea. Vedere la proprietà BaselineAlignment.
Collegamento dei tipi di carattere Fornisce il collegamento del tipo di carattere tramite l'uso di tipi di carattere compositi.
Pennello in primo piano Oggetto Brush utilizzato per il colore di primo piano. Vedere la proprietà ForegroundBrush.
OpenType Funzionalità tipografiche OpenType avanzate, ad esempio alternative contestuali e legature standard. Vedere le proprietà della TextRunTypographyProperties classe.
Tipo di carattere Determina il carattere di tipo, nonché, il peso, lo stile e l'estensione. Vedere la proprietà Typeface.
Decorazione del testo Fornisce supporto per TextDecoration oggetti, ad esempio sottolineatura o barratura. Vedere la proprietà TextDecorations.
Effetti di testo Fornisce il supporto per TextEffect gli oggetti. Vedere la proprietà TextEffects.

La tabella seguente è un elenco dei TextFormatter servizi supportati principali per le funzionalità a livello di paragrafo.

Funzionalità Descrizione
Flow direzione Flow direzione del paragrafo - da sinistra a destra o da destra a sinistra. Vedere la proprietà FlowDirection.
Rientro riga Rientro per ogni riga del paragrafo. Vedere la proprietà Indent.
Marcatore Caratteristiche del marcatore della prima riga del paragrafo. Vedere la proprietà TextMarkerProperties.
Rientro paragrafo Rientro per la prima riga del paragrafo. Vedere la proprietà ParagraphIndent.
Schede Include il supporto per l'allineamento delle schede e il leader di tabulazione.
Larghezza Determinare la larghezza minima e massima del paragrafo. Vedere i FormatMinMaxParagraphWidth metodi.
A capo automatico Determinare la modalità di wrapping del testo quando raggiunge il bordo del flusso. Vedere la proprietà TextWrapping.

La tabella seguente è un elenco dei servizi supportati principali TextFormatter per le funzionalità a livello di riga.

Funzionalità Descrizione
Allineamento Allineamento del testo: sinistro, destro, centrato o giustificato. Vedere la proprietà TextAlignment.
Altezza riga Altezza della linea. Vedere la proprietà Height.
Regole di confronto della linea Supporto per il confronto della riga. Vedere il Collapse metodo.
Misurazione della scatola nera Rappresenta le metriche utilizzate per definire il layout di un carattere in un carattere per stampante. Vedere la classe CharacterMetrics.
Supporto di Caret Supporto di spostamento e modifica del caret. Vedere le proprietà di hit del TextLine carattere, ad esempio GetNextCaretCharacterHit e GetPreviousCaretCharacterHit.

La tabella seguente è un elenco dei servizi supportati per le funzionalità a livello di TextFormatter esecuzione del testo.

Funzionalità Descrizione
Esecuzione nascosta Intervallo di caratteri non visibili. Vedere l'oggetto TextHidden .
Interruzione Interruzione riga e paragrafo.

Costruttori

TextFormatter()

Inizializza una nuova istanza della classe TextFormatter.

Metodi

Create()

Crea una nuova istanza della classe TextFormatter. Si tratta di un metodo statico.

Create(TextFormattingMode)

Crea una nuova istanza della classe TextFormatter con la modalità di formattazione specificata. Si tratta di un metodo statico.

Dispose()

Libera tutte le risorse gestite e non gestite utilizzate dall’oggetto TextFormatter.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
FormatLine(TextSource, Int32, Double, TextParagraphProperties, TextLineBreak)

Crea un oggetto TextLine utilizzato per formattare e visualizzare il contenuto del documento.

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

Crea un oggetto TextLine utilizzato per formattare e visualizzare il contenuto del documento.

FormatMinMaxParagraphWidth(TextSource, Int32, TextParagraphProperties)

Restituisce un valore che rappresenta la maggiore e la minore larghezza possibili del paragrafo che possono contenere completamente il testo specificato.

FormatMinMaxParagraphWidth(TextSource, Int32, TextParagraphProperties, TextRunCache)

Restituisce un valore che rappresenta la maggiore e la minore larghezza possibili del paragrafo che possono contenere completamente il testo specificato.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche