TextFormatter Classe

Definição

Fornece serviços para formatação de texto e quebra de linhas de texto utilizando um cliente personalizado de layout de texto.

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 seguinte mostra como usar um TextFormatter objeto para gerar linhas de texto formatadas que podem ser apresentadas 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

Observações

TextFormatter é o motor de texto WPF que fornece serviços para formatar texto e quebrar linhas de texto. TextFormatter Pode lidar com diferentes formatos de caracteres de texto e estilos de parágrafo, e inclui suporte para layout de texto internacional.

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

Diagrama do cliente de layout de texto e Diagrama 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 funcionalidades de texto, como tipografia OpenType, bem como suporte para funcionalidades de execução, linha e nível de parágrafo.

A tabela seguinte é uma lista dos principais TextFormatter serviços suportados para funcionalidades de texto.

Feature Descrição
Pincel de fundo O Brush que é usado como cor de fundo. Vê a BackgroundBrush propriedade.
Alinhamento da linha de base Determina a distância base da linha. Vê a BaselineAlignment propriedade.
Ligação de fontes Fornece ligação de fontes através do uso de fontes compostas.
Escova em primeiro plano O Brush que é usado para a cor do primeiro plano. Vê a ForegroundBrush propriedade.
OpenType Funcionalidades tipográficas avançadas do OpenType, como alternativas contextuais e ligaduras padrão. Veja as propriedades da TextRunTypographyProperties classe.
Tipografia Determina a tipografia, bem como o peso, o estilo e a elasticidade. Vê a Typeface propriedade.
Decoração do texto Fornece suporte para TextDecoration objetos, como sublinhado ou riscado. Vê a TextDecorations propriedade.
Efeitos de texto Fornece suporte para TextEffect objetos. Vê a TextEffects propriedade.

A tabela seguinte apresenta uma lista dos principais TextFormatter serviços suportados para funcionalidades ao nível do parágrafo.

Feature Descrição
Direção do fluxo Direção do fluxo do parágrafo - da esquerda para a direita, ou da direita para a esquerda. Vê a FlowDirection propriedade.
Reentrância em linha Indentação para cada linha do parágrafo. Vê a Indent propriedade.
Marcador Características do marcador da primeira linha do parágrafo. Vê a TextMarkerProperties propriedade.
Reentrância do parágrafo Indentação para a primeira linha do parágrafo. Vê a ParagraphIndent propriedade.
Tabs Inclui suporte para alinhamento de separadores e líder de separadores.
Largura Determinar a largura mínima e máxima dos parágrafos. Veja os FormatMinMaxParagraphWidth métodos.
Quebra automática de texto Determina como o texto se enrola quando chega à borda do fluxo. Vê a TextWrapping propriedade.

A tabela seguinte é uma lista dos principais TextFormatter serviços suportados para funcionalidades ao nível de linha.

Feature Descrição
Alinhamento Alinhamento do texto - esquerda, direita, centrado ou justificado. Vê a TextAlignment propriedade.
Altura da linha Altura da linha. Vê a Height propriedade.
Colapso da linha Suporte a colapsar da linha. Veja o Collapse método.
Medição da caixa preta Representa as métricas usadas para dispor um carácter numa fonte de dispositivo. Veja a aula CharacterMetrics.
Suporte Caret Suporte para navegação e edição por caret. Veja as propriedades de TextLine impacto das personagens, como GetNextCaretCharacterHit e GetPreviousCaretCharacterHit.

A tabela seguinte apresenta uma lista dos principais TextFormatter serviços suportados para funcionalidades ao nível da execução de texto.

Feature Descrição
Corrida oculta Variedade de caracteres que não são visíveis. Vê o TextHidden objeto.
Interrupção Quebra de linha e parágrafo.

Construtores

Name Description
TextFormatter()

Inicializa uma nova instância da TextFormatter classe.

Métodos

Name Description
Create()

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

Create(TextFormattingMode)

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

Dispose()

Liberta todos os recursos geridos e não geridos usados pelo TextFormatter objeto.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

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

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

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

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

FormatMinMaxParagraphWidth(TextSource, Int32, TextParagraphProperties, TextRunCache)

Devolve um valor que representa a menor e maior largura de parágrafo possível que pode conter totalmente o conteúdo de texto especificado.

FormatMinMaxParagraphWidth(TextSource, Int32, TextParagraphProperties)

Devolve um valor que representa a menor e maior largura de parágrafo possível que pode conter totalmente o conteúdo de texto especificado.

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Ver também