TextFormatter Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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.
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) |