Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este tópico apresenta os principais recursos tipográficos do WPF. Esses recursos incluem melhor qualidade e desempenho de renderização de texto, suporte a tipografia OpenType, texto internacional aprimorado, suporte aprimorado a fontes e novas interfaces de programação de aplicativos de texto (APIs).
Melhor qualidade e desempenho do texto
O texto no WPF é renderizado usando o Microsoft ClearType, que melhora a clareza e a legibilidade do texto. ClearType é uma tecnologia de software desenvolvida pela Microsoft que melhora a legibilidade do texto em LCDs (Liquid Crystal Displays) existentes, como telas de laptop, telas de Pocket PC e monitores de tela plana. ClearType usa renderização de subpixels que permite que o texto seja exibido com uma maior fidelidade à sua verdadeira forma, alinhando caracteres em uma parte fracionária de um pixel. A resolução extra aumenta a nitidez dos pequenos detalhes na exibição de texto, tornando a leitura muito mais fácil durante longas durações. Outra melhoria do ClearType no WPF é o anti-aliasing de direção y, que suaviza as partes superiores e inferiores das curvas superficiais em caracteres de texto. Para obter mais detalhes sobre os recursos do ClearType, consulte Visão geral do ClearType.
Texto com suavização de borda ClearType na direção y
Todo o pipeline de renderização de texto pode ser acelerado por hardware no WPF, desde que sua máquina atenda ao nível mínimo de hardware necessário. A renderização que não pode ser executada usando hardware retorna à renderização de software. A aceleração de hardware afeta todas as fases do pipeline de renderização de texto — desde o armazenamento de glifos individuais, a composição em sequências de glifos, a aplicação de efeitos até à aplicação do algoritmo de mistura ClearType à saída final exibida. Para obter mais informações sobre aceleração de hardware, consulte Camadas de renderização de gráficos.
Além disso, o texto animado, seja por personagem ou glifo, aproveita ao máximo a capacidade de hardware gráfico habilitada pelo WPF. Isso resulta em animação de texto suave.
Tipografia rica
O formato de fonte OpenType é uma extensão do formato de fonte TrueType®. O formato de fonte OpenType foi desenvolvido em conjunto pela Microsoft e pela Adobe e fornece uma rica variedade de recursos tipográficos avançados. O Typography objeto expõe muitos dos recursos avançados das fontes OpenType, como alternativas estilísticas e swashes. O SDK do Windows fornece um conjunto de fontes OpenType de exemplo que são projetadas com recursos avançados, como as fontes Pericles e Pescadero. Para obter mais informações, consulte Sample OpenType Font Pack.
A fonte Pericles OpenType contém glifos adicionais que fornecem alternativas estilísticas para o conjunto padrão de glifos. O texto a seguir exibe glifos alternativos estilísticos.
Swashes são glifos decorativos que usam ornamentação elaborada frequentemente associada à caligrafia. O texto a seguir exibe glifos padrão e ornamentais nesta fonte Pescadero.
Para obter mais detalhes sobre os recursos do OpenType, consulte Recursos de fonte OpenType.
Suporte de texto internacional aprimorado
O WPF fornece suporte de texto internacional aprimorado fornecendo os seguintes recursos:
Espaçamento automático entre linhas em todos os sistemas de escrita, utilizando medição adaptativa.
Amplo apoio ao texto internacional. Para obter mais informações, consulte Globalização para WPF.
Quebra de linha guiada por idioma, hifenização e justificação.
Suporte de fonte aprimorado
O WPF fornece suporte aprimorado a fontes fornecendo os seguintes recursos:
Unicode para todo o texto. O comportamento e a seleção de fontes não exigem mais charset ou codepage.
Comportamento da fonte independente das configurações globais, como a localidade do sistema.
Separe os tipos FontWeight, FontStretch e FontStyle para definir um FontFamily. Isso fornece maior flexibilidade do que na programação Win32, na qual combinações booleanas de itálico e negrito são usadas para definir uma família de fontes.
Direção de escrita (horizontal versus vertical) manipulada independentemente do nome da fonte.
Ligação de fontes e substituição de fontes num arquivo XML portátil, usando tecnologia de fontes compostas. Fontes compostas permitem a construção de fontes multilíngues de gama completa. As fontes compostas também fornecem um mecanismo que evita a exibição de glifos ausentes. Para obter mais informações, consulte as observações na classe FontFamily.
Fontes internacionais construídas a partir de fontes compostas, usando um grupo de fontes de idioma único. Isso economiza custos de recursos ao desenvolver fontes para vários idiomas.
Fontes compostas incorporadas em um documento, proporcionando portabilidade do documento. Para obter mais informações, consulte as observações na classe FontFamily.
Novas interfaces de programação de aplicativos de texto (APIs)
O WPF fornece várias APIs de texto para os desenvolvedores usarem ao incluir texto em seus aplicativos. Essas APIs são agrupadas em três categorias:
Layout e interface de usuário. Os controles de texto comum para a interface gráfica do usuário (GUI).
Desenho de texto leve. Permite desenhar texto diretamente em objetos.
Formatação de texto avançada. Permite implementar um mecanismo de texto personalizado.
Layout e Interface do Usuário
No mais alto nível de funcionalidade, as APIs de texto fornecem controles comuns da interface do usuário, como Label, TextBlocke TextBox. Esses controles fornecem os elementos básicos da interface do usuário dentro de um aplicativo e oferecem uma maneira fácil de apresentar e interagir com texto. Controles como RichTextBox e PasswordBox permitem o manuseio de texto mais avançado ou especializado. E classes como TextRange, TextSelectione TextPointer permitem a manipulação de texto útil. Esses controles de interface do usuário fornecem propriedades como FontFamily, FontSizee FontStyle, que permitem controlar a fonte usada para renderizar o texto.
Usando efeitos de bitmap, transformações e efeitos de texto
O WPF permite que você crie usos visualmente interessantes de texto usando recursos como efeitos de bitmap, transformações e efeitos de texto. O exemplo a seguir mostra um tipo típico de um efeito de sombra projetada aplicado ao texto.
O exemplo a seguir mostra um efeito de sombra projetada e ruído aplicado ao texto.
O exemplo a seguir mostra um efeito de brilho externo aplicado ao texto.
O exemplo a seguir mostra um efeito de desfoque aplicado ao texto.
O exemplo a seguir mostra a segunda linha de texto dimensionada por 150% ao longo do eixo x e a terceira linha de texto dimensionada por 150% ao longo do eixo y.
O exemplo a seguir mostra texto distorcido ao longo do eixo x.
Um TextEffect objeto é um objeto auxiliar que permite tratar o texto como um ou mais grupos de caracteres em uma cadeia de caracteres de texto. O exemplo a seguir mostra um caractere individual sendo girado. Cada caractere é girado independentemente em intervalos de 1 segundo.
Utilizando documentos de fluxo
Além dos controles comuns da interface do usuário, o WPF oferece um controle de layout para apresentação de texto — o FlowDocument elemento . O FlowDocument elemento , em conjunto com o DocumentViewer elemento , fornece um controle para grandes quantidades de texto com requisitos de layout variáveis. Os controlos de disposição fornecem acesso à tipografia avançada através do objeto Typography e das propriedades relacionadas à fonte de outros controlos da interface do utilizador.
O exemplo a seguir mostra o conteúdo de texto hospedado em um FlowDocumentReader, que fornece suporte a pesquisa, navegação, paginação e dimensionamento de conteúdo.
Para obter mais informações, consulte Documentos no WPF.
Desenho de texto leve
Você pode desenhar texto diretamente para objetos WPF usando o DrawText método do DrawingContext objeto. Para usar esse método, você cria um FormattedText objeto. Este objeto permite desenhar texto de várias linhas, no qual cada caractere no texto pode ser formatado individualmente. A funcionalidade do FormattedText objeto contém grande parte da funcionalidade dos sinalizadores DrawText na API do Windows. Além disso, o objeto FormattedText contém funcionalidades como suporte a reticências, nas quais uma reticência é exibida quando o texto FormattedText excede os seus limites. O exemplo a seguir mostra texto que tem vários formatos aplicados a ele, incluindo um gradiente linear na segunda e terceira palavras.
Você pode converter texto formatado em objetos Geometry, permitindo que você crie outros tipos de texto visualmente interessante. Por exemplo, você pode criar um objeto Geometry com base no contorno de uma cadeia de caracteres de texto.
Os exemplos a seguir ilustram várias maneiras de criar efeitos visuais interessantes modificando o traçado, o preenchimento e o realce do texto convertido.
Para obter mais informações sobre o FormattedText objeto, consulte Desenho de texto formatado.
Formatação avançada de texto
No nível mais avançado das APIs de texto, o WPF oferece a capacidade de criar layout de texto personalizado usando o TextFormatter objeto e outros tipos no System.Windows.Media.TextFormatting namespace. As TextFormatter classes associadas permitem que você implemente um layout de texto personalizado que ofereça suporte à sua própria definição de formatos de caracteres, estilos de parágrafo, regras de quebra de linha e outros recursos de layout para texto internacional. Há muito poucos casos em que você gostaria de substituir a implementação padrão do suporte de layout de texto WPF. No entanto, se você estava criando um controle de edição de texto ou aplicativo, você pode precisar de uma implementação diferente da implementação padrão do WPF.
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 a seguir ilustra a interação de layout de texto entre o aplicativo cliente e TextFormatter.
Para obter mais detalhes sobre como criar layout de texto personalizado, consulte Formatação avançada de texto.
Ver também
.NET Desktop feedback