TextFormatter Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.

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