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