Compartilhar via


TextFormatter Classe

Definição

Fornece serviços para formatação de texto e quebra de linhas de texto usando um cliente de layout 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
Herança
TextFormatter
Implementações

Exemplos

O exemplo a seguir mostra como usar um TextFormatter objeto para gerar linhas formatadas de texto que podem ser exibidas como objetos de desenho.

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

Comentários

TextFormatter é o mecanismo de texto do WPF que fornece serviços para formatação de texto e quebra de linhas de texto. TextFormatter pode lidar com diferentes formatos de caractere de texto e estilos de parágrafo e inclui suporte para layout de texto internacional.

Ao contrário de uma API de texto tradicional, a TextFormatter interação com um cliente de layout de texto por meio de um conjunto de métodos de retorno de chamada. Ele requer que o cliente forneça esses métodos em uma implementação da TextSource classe. O diagrama a seguir ilustra a interação do cliente do formatador de texto e do cliente de layout de texto.

Diagrama de cliente de layout de texto e TextFormatter
Interação entre o cliente de layout de texto e o objeto TextFormatter

Serviços de Formatação de Texto

TextFormatter fornece suporte para recursos de texto, como tipografia OpenType, bem como suporte para recursos de execução de texto, linha e nível de parágrafo.

A tabela a seguir é uma lista dos principais TextFormatter serviços com suporte para recursos de texto.

Recurso Descrição
Pincel em segundo plano O Brush que é usado para a cor da tela de fundo. Consulte a propriedade BackgroundBrush.
Alinhamento da linha de base Determina a distância da linha de base. Consulte a propriedade BaselineAlignment.
Vinculação de fonte Fornece vinculação de fontes por meio do uso de fontes compostas.
Pincel em primeiro plano O Brush que é usado para a cor do primeiro plano. Consulte a propriedade ForegroundBrush.
OpenType Recursos tipográficos avançados do OpenType, tais alternativas contextuais e ligaduras padrão. Consulte as propriedades da TextRunTypographyProperties classe.
Face de tipos Determina a tipografia, bem como o peso, o estilo e o alongamento. Consulte a propriedade Typeface.
Decoração de texto Fornece suporte para TextDecoration objetos, como sublinhado ou tachado. Consulte a propriedade TextDecorations.
Efeitos de texto Fornece suporte para TextEffect objetos. Consulte a propriedade TextEffects.

A tabela a seguir é uma lista dos principais TextFormatter serviços com suporte para recursos de nível de parágrafo.

Recurso Descrição
Flow direção Flow direção do parágrafo - da esquerda para a direita ou da direita para a esquerda. Consulte a propriedade FlowDirection.
Recuo de linha Recuo para cada linha no parágrafo. Consulte a propriedade Indent.
Marker Características de marcador da primeira linha no parágrafo. Consulte a propriedade TextMarkerProperties.
Recuo de parágrafo Recuo para a primeira linha no parágrafo. Consulte a propriedade ParagraphIndent.
Tabulações Inclui suporte para o alinhamento de tabulação e o líder da guia.
Largura Determine a largura mínima e máxima do parágrafo. Consulte os FormatMinMaxParagraphWidth métodos.
Quebra automática de linha Determine como o texto é encapsulado quando atinge a borda do fluxo. Consulte a propriedade TextWrapping.

A tabela a seguir é uma lista dos principais TextFormatter serviços com suporte para recursos de nível de linha.

Recurso Descrição
Alinhamento Alinhamento de texto – esquerda, direita, centralizado ou justificado. Consulte a propriedade TextAlignment.
Altura da linha Altura da linha. Consulte a propriedade Height.
Recolhimento de linha Suporte para recolhimento de linha. Consulte o Collapse método.
Medida de caixa preta Representa a métrica usada para criar o layout de um caractere em uma fonte do dispositivo. Consulte a classe CharacterMetrics.
Suporte ao Caret Suporte à navegação e edição do Caret. Veja as propriedades de ocorrência do TextLine caractere, como GetNextCaretCharacterHit e GetPreviousCaretCharacterHit.

A tabela a seguir é uma lista dos principais TextFormatter serviços com suporte para recursos de nível de execução de texto.

Recurso Descrição
Execução oculta Intervalo de caracteres que não estão visíveis. Consulte o TextHidden objeto.
Quebra Quebra de linha e parágrafo.

Construtores

TextFormatter()

Inicializa uma nova instância da classe TextFormatter.

Métodos

Create()

Cria uma nova instância da classe TextFormatter. Esse é um método estático.

Create(TextFormattingMode)

Cria uma nova instância da classe TextFormatter com o modo de formatação especificado. Esse é um método estático.

Dispose()

Libera todos os recursos gerenciados e não gerenciados usados pelo objeto TextFormatter.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

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

Cria um TextLine que é usado para formatar e exibir o conteúdo do documento.

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

Cria um TextLine que é usado para formatar e exibir o conteúdo do documento.

FormatMinMaxParagraphWidth(TextSource, Int32, TextParagraphProperties)

Retorna um valor que representa a menor e a maior largura de parágrafo possível que contém totalmente o conteúdo de texto especificado.

FormatMinMaxParagraphWidth(TextSource, Int32, TextParagraphProperties, TextRunCache)

Retorna um valor que representa a menor e a maior largura de parágrafo possível que contém totalmente o conteúdo de texto especificado.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Confira também