TextFormatter Classe

Definizione

Fornisce servizi per la formattazione del testo e per inserire interruzioni di riga utilizzando un client di layout del testo personalizzato.Provides services for formatting text and breaking text lines using a custom text layout client.

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

Esempi

Nell'esempio seguente viene illustrato come utilizzare un oggetto TextFormatter per generare righe di testo formattate che possono essere visualizzate come oggetti Drawing.The following example shows how to use a TextFormatter object to generate formatted lines of text that can be displayed as drawing objects.

// 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 WPFWPF che fornisce servizi per la formattazione del testo e la suddivisione delle righe di testo.TextFormatter is the WPFWPF text engine that provides services for formatting text and breaking text lines. TextFormatter è in grado di gestire formati di caratteri di testo e stili di paragrafo diversi e include il supporto per il layout del testo internazionale.TextFormatter can handle different text character formats and paragraph styles, and includes support for international text layout.

Diversamente da un'API di testo tradizionale, il TextFormatter interagisce con un client di layout di testo tramite un set di metodi di callback.Unlike a traditional text API, the TextFormatter interacts with a text layout client through a set of callback methods. Richiede che il client fornisca questi metodi in un'implementazione della classe TextSource.It requires the client to provide these methods in an implementation of the TextSource class. Il diagramma seguente illustra l'interazione tra il client del formattatore di testo e il client di layout di testo.The following diagram illustrates the interaction of the text formatter client and the text layout client.

Diagramma del client del layout di testo e TextFormatterDiagram of text layout client and TextFormatter
Interazione tra il client di layout di testo e l'oggetto TextFormatterInteraction between the text layout client and the TextFormatter object

Servizi di formattazione del testoText Formatting Services

TextFormatter fornisce il supporto per le funzionalità di testo, ad esempio la tipografia OpenType, nonché il supporto per le funzionalità a livello di sequenza di testo, riga e paragrafo.TextFormatter provides support for text features, such as OpenType typography, as well as support for text run, line, and paragraph level features.

Nella tabella seguente è riportato un elenco dei servizi chiave TextFormatter supportati per le funzionalità di testo.The following table is a list of the key TextFormatter supported services for text features.

FunzionalitàFeature DescriptionDescription
Pennello di sfondoBackground brush Brush utilizzato per il colore di sfondo.The Brush that is used for the background color. Vedere la proprietà BackgroundBrush.See the BackgroundBrush property.
Allineamento linea di baseBaseline alignment Determina la distanza della linea di base della linea.Determines the baseline distance of the line. Vedere la proprietà BaselineAlignment.See the BaselineAlignment property.
Collegamento dei tipi di carattereFont linking Fornisce il collegamento del tipo di carattere tramite l'utilizzo di tipi di carattere compositi.Provides font linking through the use of composite fonts.
Pennello in primo pianoForeground brush Brush utilizzato per il colore di primo piano.The Brush that is used for the foreground color. Vedere la proprietà ForegroundBrush.See the ForegroundBrush property.
OpenTypeOpenType Funzionalità tipografiche OpenType avanzate, ad esempio alternative contestuali e legature standard.Advanced OpenType typographic features, such contextual alternates and standard ligatures. Vedere le proprietà della classe TextRunTypographyProperties.See the TextRunTypographyProperties class properties.
Carattere tipograficoTypeface Determina il carattere tipografico, nonché, il peso, lo stile e l'estensione.Determines the typeface, as well as, weight, style, and stretch. Vedere la proprietà Typeface.See the Typeface property.
Decorazione del testoText decoration Fornisce supporto per TextDecoration oggetti, ad esempio sottolineato o barrato.Provides support for TextDecoration objects, such as underline or strikethrough. Vedere la proprietà TextDecorations.See the TextDecorations property.
Effetti di testoText effects Fornisce supporto per gli oggetti TextEffect.Provides support for TextEffect objects. Vedere la proprietà TextEffects.See the TextEffects property.

Nella tabella seguente è riportato un elenco dei servizi chiave TextFormatter supportati per le funzionalità a livello di paragrafo.The following table is a list of the key TextFormatter supported services for paragraph-level features.

FunzionalitàFeature DescriptionDescription
Direzione del flussoFlow direction Direzione del flusso del paragrafo da sinistra a destra o da destra a sinistra.Flow direction of the paragraph - left-to-right, or right-to-left. Vedere la proprietà FlowDirection.See the FlowDirection property.
Rientro rigaLine indentation Rientro per ogni riga nel paragrafo.Indentation for each line in the paragraph. Vedere la proprietà Indent.See the Indent property.
MarcatoreMarker Caratteristiche del marcatore della prima riga nel paragrafo.Marker characteristics of the first line in the paragraph. Vedere la proprietà TextMarkerProperties.See the TextMarkerProperties property.
Rientro paragrafoParagraph indentation Rientro per la prima riga del paragrafo.Indentation for the first line in the paragraph. Vedere la proprietà ParagraphIndent.See the ParagraphIndent property.
SchedeTabs Include il supporto per l'allineamento a schede e il leader di tabulazione.Includes support for tab alignment and tab leader.
LarghezzaWidth Determinare la larghezza minima e massima del paragrafo.Determine minimum and maximum paragraph width. Vedere i metodi FormatMinMaxParagraphWidth.See the FormatMinMaxParagraphWidth methods.
A capo automaticoWord wrap Determinare il ritorno a capo del testo quando raggiunge il bordo del flusso.Determine how text wraps when it reaches the flow edge. Vedere la proprietà TextWrapping.See the TextWrapping property.

La tabella seguente è un elenco dei servizi chiave TextFormatter supportati per le funzionalità a livello di riga.The following table is a list of the key TextFormatter supported services for line-level features.

FunzionalitàFeature DescriptionDescription
AllineamentoAlignment Allineamento del testo: a sinistra, a destra, centrato o giustificato.Text alignment - left, right, centered, or justified. Vedere la proprietà TextAlignment.See the TextAlignment property.
Altezza rigaLine height Altezza della linea.Height of the line. Vedere la proprietà Height.See the Height property.
Compressione righeLine collapsing Supporto per la compressione di riga.Line collapsing support. Vedere il metodo Collapse.See the Collapse method.
Misurazione della casella neraBlack box measurement Rappresenta le metriche utilizzate per definire il layout di un carattere in un carattere per stampante.Represents the metrics used to lay out a character in a device font. Vedere la classe CharacterMetrics.See the CharacterMetrics class.
Supporto del cursoreCaret support Supporto per la modifica e la navigazione del cursore.Caret navigation and editing support. Vedere le proprietà di hit TextLine character, ad esempio GetNextCaretCharacterHit e GetPreviousCaretCharacterHit.See the TextLine character hit properties, such as GetNextCaretCharacterHit and GetPreviousCaretCharacterHit.

Nella tabella seguente è riportato un elenco dei servizi chiave TextFormatter supportati per le funzionalità di testo a livello di esecuzione.The following table is a list of the key TextFormatter supported services for text run-level features.

FunzionalitàFeature DescriptionDescription
Esecuzione nascostaHidden run Intervallo di caratteri non visibili.Range of characters that are not visible. Vedere l'oggetto TextHidden.See the TextHidden object.
InterruzioneBreaking Interruzioni di riga e paragrafo.Line and paragraph breaking.

Costruttori

TextFormatter()

Inizializza una nuova istanza della classe TextFormatter.Initializes a new instance of the TextFormatter class.

Metodi

Create()

Crea una nuova istanza della classe TextFormatter.Creates a new instance of the TextFormatter class. Si tratta di un metodo statico.This is a static method.

Create(TextFormattingMode)

Crea una nuova istanza della classe TextFormatter con la modalità di formattazione specificata.Creates a new instance of the TextFormatter class with the specified formatting mode. Si tratta di un metodo statico.This is a static method.

Dispose()

Libera tutte le risorse gestite e non gestite utilizzate dall’oggetto TextFormatter.Releases all managed and unmanaged resources used by the TextFormatter object.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

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

Crea un oggetto TextLine utilizzato per formattare e visualizzare il contenuto del documento.Creates a TextLine that is used for formatting and displaying document content.

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

Crea un oggetto TextLine utilizzato per formattare e visualizzare il contenuto del documento.Creates a TextLine that is used for formatting and displaying document content.

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.Returns a value that represents the smallest and largest possible paragraph width that can fully contain the specified text content.

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.Returns a value that represents the smallest and largest possible paragraph width that can fully contain the specified text content.

GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Si applica a

Vedi anche