Compartir a través de


TextFormatter Clase

Definición

Proporciona los servicios para dar formato al texto e interrumpir líneas de texto mediante un cliente de diseño de texto personalizado.

public ref class TextFormatter abstract : IDisposable
public abstract class TextFormatter : IDisposable
type TextFormatter = class
    interface IDisposable
Public MustInherit Class TextFormatter
Implements IDisposable
Herencia
TextFormatter
Implementaciones

Ejemplos

En el ejemplo siguiente se muestra cómo usar un TextFormatter objeto para generar líneas de texto con formato que se pueden mostrar como objetos de dibujo.

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

Comentarios

TextFormatter es el motor de texto WPF que proporciona servicios para dar formato a texto y romper líneas de texto. TextFormatter puede controlar diferentes formatos de caracteres de texto y estilos de párrafo, e incluye compatibilidad con el diseño de texto internacional.

A diferencia de una API de texto tradicional, TextFormatter interactúa con un cliente de diseño de texto a través de un conjunto de métodos de devolución de llamada. Requiere que el cliente proporcione estos métodos en una implementación de la TextSource clase . En el diagrama siguiente se muestra la interacción del cliente de formateador de texto y el cliente de diseño de texto.

Diagrama de TextFormatter y cliente de diseño de texto
Interacción entre el cliente de diseño de texto y el objeto TextFormatter

Servicios de formato de texto

TextFormatter proporciona compatibilidad con características de texto, como la tipografía OpenType, así como la compatibilidad con características de nivel de párrafo, línea y ejecución de texto.

En la tabla siguiente se muestra una lista de los servicios clave TextFormatter admitidos para las características de texto.

Característica Descripción
Pincel de fondo Brush que se usa para el color de fondo. Consulte la propiedad BackgroundBrush.
Alineación de línea base Determina la distancia de línea base de la línea. Consulte la propiedad BaselineAlignment.
Vinculación de fuentes Proporciona la vinculación de fuentes mediante el uso de fuentes compuestas.
Pincel de primer plano Brush que se usa para el color de primer plano. Consulte la propiedad ForegroundBrush.
OpenType Características tipográficas de OpenType avanzadas, como alternativas contextuales y ligaduras estándar. Vea las propiedades de la TextRunTypographyProperties clase.
Tipo de letra Determina el tipo de letra, así como el peso, el estilo y el ajuste. Consulte la propiedad Typeface.
Decoración de texto Proporciona compatibilidad con TextDecoration objetos, como subrayado o tachado. Consulte la propiedad TextDecorations.
Efectos de texto Proporciona compatibilidad con TextEffect objetos. Consulte la propiedad TextEffects.

En la tabla siguiente se muestra una lista de los servicios admitidos clave TextFormatter para las características de nivel de párrafo.

Característica Descripción
Flow dirección Flow dirección del párrafo: de izquierda a derecha o de derecha a izquierda. Consulte la propiedad FlowDirection.
Sangría de línea Sangría para cada línea del párrafo. Consulte la propiedad Indent.
Marcador Características de marcador de la primera línea del párrafo. Consulte la propiedad TextMarkerProperties.
Sangría de párrafo Sangría de la primera línea del párrafo. Consulte la propiedad ParagraphIndent.
Tabulaciones Incluye compatibilidad con la alineación de pestañas y el líder de tabulación.
Ancho Determine el ancho mínimo y máximo del párrafo. Consulte los FormatMinMaxParagraphWidth métodos.
Ajuste de línea Determine cómo se ajusta el texto cuando llega al borde del flujo. Consulte la propiedad TextWrapping.

En la tabla siguiente se muestra una lista de los servicios clave TextFormatter admitidos para las características de nivel de línea.

Característica Descripción
Alignment Alineación de texto: izquierda, derecha, centrada o justificada. Consulte la propiedad TextAlignment.
Alto de línea Alto de la línea. Consulte la propiedad Height.
Contracción de líneas Compatibilidad con contracción de líneas. Vea el Collapse método .
Medida de caja negra Representa las métricas utilizadas para colocar un carácter en la fuente de un dispositivo. Vea la descripción de la clase CharacterMetrics.
Compatibilidad con intercalación Compatibilidad con la navegación y edición de símbolos de intercalación. Vea las TextLine propiedades de aciertos de caracteres, como GetNextCaretCharacterHit y GetPreviousCaretCharacterHit.

En la tabla siguiente se muestra una lista de los servicios clave TextFormatter admitidos para las características de nivel de ejecución de texto.

Característica Descripción
Ejecución oculta Intervalo de caracteres que no están visibles. Vea el TextHidden objeto .
Problemático Salto de línea y párrafo.

Constructores

TextFormatter()

Inicializa una nueva instancia de la clase TextFormatter.

Métodos

Create()

Crea una nueva instancia de la clase TextFormatter. Se trata de un método estático.

Create(TextFormattingMode)

Crea una nueva instancia de la clase TextFormatter con el modo de formato especificado. Se trata de un método estático.

Dispose()

Libera todos los recursos administrados y no administrados que usa el objeto TextFormatter.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
FormatLine(TextSource, Int32, Double, TextParagraphProperties, TextLineBreak)

Crea un objeto TextLine que se usa para dar formato y mostrar el contenido de un documento.

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

Crea un objeto TextLine que se usa para dar formato y mostrar el contenido de un documento.

FormatMinMaxParagraphWidth(TextSource, Int32, TextParagraphProperties)

Devuelve un valor que representa el ancho de párrafo menor y mayor posible que puede incluir totalmente el contenido de texto especificado.

FormatMinMaxParagraphWidth(TextSource, Int32, TextParagraphProperties, TextRunCache)

Devuelve un valor que representa el ancho de párrafo menor y mayor posible que puede incluir totalmente el contenido de texto especificado.

GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a

Consulte también