Tipografia em Windows Presentation Foundation
Este tópico introduz as principais características tipográfivas do WPF. Essas características incluem qualidade e desempenho melhores de renderização de texto, suporte a tipografia OpenType, texto internacional aperfeiçoado, suporte de fonte aperfeiçoado e novas interfaces de programação de aplicação (APIs) de texto.
Este tópico contém as seguintes seções.
- Qualidade e Desempenho Mehorados de Texto
- Tipografia Rica
- Suporte de Texto Internacional Melhorado
- Suporte a Fonte Melhorado
- Novas Interfaces de Programação de Aplicativos (APIs)
- Recursos
- Tópicos relacionados
Qualidade e Desempenho Mehorados de Texto
Texto em WPF é processado usando Microsoft ClearType, que aprimora a clareza e legibilidade do texto. ClearType é uma tecnologia de software desenvolvida pela Microsoft que melhora a legibilidade do texto em LCDs existentes (líquido Crystal exibe), sistema autônomo telas de laptop, Pocket PC telas e monitores de tela plana. ClearType usa renderização subpixel que permite que o texto a ser exibido com uma maior fidelidade para sua forma verdadeira, alinhar caracteres em uma parte fracionária de um pixel. A resolução extra aumenta a nitidez dos detalhes mínimos na exibição de texto, tornando muito mais fácil ler durante muito tempo. Outra melhoria de ClearType em WPF é a suavização na direção y, que suaviza o topo e a parte inferior de curvas rasas em caracteres de texto. Para obter mais detalhes sobre características de ClearType, consulteVisão Geral de ClearType.
Texto com Suavização ClearType na direção y
O pipeline de renderização do texto inteiro pode ser acelerado por hardware em WPF desde que sua máquina satisfaça o nível mínimo de hardware requerido. Renderização que não possa ser realizada por hardware cai para renderização por software. Aceleração por hardware afeta todas as fases do pipeline de renderização de texto -- desde armazenar glifos individuais, compor glifos em sequências, aplicar efeitos, até aplicar algoritmo de mesclagem ClearType para a saída final exibida. Para mais informações sobre aceleração por hardware, consulte Níveis de Renderização Gráfica.
Diagrama do pipeline de renderização de texto
Além disso, texto animado, seja por caractere ou glifo, tira total proveito da capacidade de hardware gráfico possibilitada pelo WPF. Isso resulta numa 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 Adobe, e fornece um conjunto rico de características tipográficas avançadas. O objeto Typography expõe muitas das características avançadas de fontes OpenType, tais como alternativas estilísticas. The Windows SDK Fornece um conjunto de amostra OpenType fontes que são criadas com recursos sofisticados, sistema autônomo sistema autônomo fontes Pericles e Pescadero. Para obter mais informações, consulte Pacote Exemplo de fontes OpenType.
A fonte OpenType Pericles contém glifos adicionais que fornecem alternativas estilísticas ao conjunto padrão de glifos. O texto a seguir exibe glifos alternativos estilísticos.
Texto usando glifos alternativos estilísticos OpenType
Glifos decorativos que utilizam ornamentação elaborada geralmente associada com caligrafia. O texto a seguir exibe glifos padrão e decorados para a fonte Pescadero.
Texto usando glifos padrão e de caracteres ornamentados OpenType
Para obter mais detalhes sobre características de OpenType, consulteRecursos de fontes OpenType.
Suporte de Texto Internacional Melhorado
WPF fornece suporte a texto internacional melhorado fornecendo as seguintes características:
Espacejamento automático em todos os sistemas de escrita, utilizando medida adaptativa.
Amplo Suporte a Texto Internacional. Para obter mais informações, consulte Globalização para o Windows Presentation Foundation.
Quebra de linha, hifenação e justificação orientados pelo idioma.
Suporte a Fonte Melhorado
WPF fornece suporte a fonte melhorado fornecendo as seguintes características:
Unicode para todo texto. Comportamento e seleção de fonte não mais requer charset ou codepage.
Comportamento de fonte independente de configurações globais, tais como localização do sistema.
Separa tipos FontWeight, FontStretch e FontStyle para definir um FontFamily. Isso fornece maios flexibilidade que em programação Win32, em que combinações Booleanas de itálico e negrito são utilizadas para definir uma família de fontes.
Direção de escrita (horizontal versus vertical) manipuladas de forma independente do nome da fonte.
Ligação de fonte em um arquivo XML portátil, utilizando tecnologia de fonte composta. Fontes compostas permitem a construção de uma gama completa de fontes multi-idioma. Fontes compostas também fornecem um mecanismo que evita exibir glifos que faltam. Para obter mais informações, consulte os comentários na classe FontFamily.
Fontes internacionais construídas a partir de fontes compostas, utilizando um grupo de fontes de único idioma. Isso economiza recurso ao desenvolver fontes para múltiplos idiomas.
Fontes compostas embutidas em um documento, fornecendo assim portabilidade ao documento. Para obter mais informações, consulte os comentários na classe FontFamily.
Novas Interfaces de Programação de Aplicativos (APIs)
WPF fornece diversas APIs de texto para desenvolvedores utilizarem ao incluir texto em suas aplicações. Essas APIs são agrupadas em três categorias:
Layout e interface de usuário. Os controles de texto comuns para a interface gráfica do usuário (GUI).
Desenho de texto leve. Permite que você desenhe texto diretamente em objetos.
Formatação de texto avançada. Permite que você implemente um mecanismo de texto personalizado.
Layout e Interface de Usuário
No nível mais alto de funcionalidade, as APIs de texto fornecem controles de interface do usuário (UI) comuns tais como Label, TextBlock e TextBox. Esses controles fornecem os elementos básicos de UI em uma aplicação, e oferecem uma forma fácil de apresentar e interagir com texto. Controles tais como RichTextBox e PasswordBox habilita tratamento de texto mais avançado ou especializado. E classes tais como TextRange, TextSelection e TextPointer possibilitam manipulação útil de texto. Esses controles de UI fornecem propriedades tais como FontFamily, FontSize e FontStyle, que permitem que você controle a fonte que é utilizada para renderizar o texto.
Utilizando Efeitos de Bitmap, Transformações e Efeitos de Texto
WPF permite que você crie usos visualmente interessantes de texto utilizando características como efeitos de bitmap, transformações e efeitos de texto. O exemplo a seguir mostra um tipo comum de efeito de sombra aplicado a texto.
Texto com sombra.
O exemplo a seguir mostra um tipo comum de efeito de sombra e ruído aplicado a texto.
Texto com sombra e ruído.
O exemplo a seguir mostra um efeito de brilho externo aplicado a texto.
Texto com um efeito de brilho externo.
O exemplo a seguir mostra um efeito de borrar aplicado a texto.
Exemplo de texto com efeito de borrar.
O exemplo a seguir mostra a segunda linha de texto redimensionada em 150% no eixo X, e a terceira linha de texto redimensionada em 150% no eixo Y.
Texto utilizando uma ScaleTransform.
O exemplo a seguir mostra o texto enviezado no eixo X.
Texto utilizando uma SkewTransform
Um objeto TextEffect é um objeto auxiliar que permite que você trate texto como um ou mais grupos de caracteres em um string de texto. O exemplo a seguir tirado de Exemplo de TextEffect mostra um caractere individual sendo rotacionado. Cada caractere é rotacionado de forma independente em intervalos de 1 segundo.
Exemplo de animação de efeito de rotação de texto.
Utilizando Documentos de Fluxo
Além dos controles comuns de UI, WPF oferece um controle de layout para apresentação de texto-- o elemento FlowDocument. O elemento FlowDocument, em conjunto com o elemento DocumentViewer, fornece um controle para grandes quantidades de texto com diversos requisitos de layout. Controles de layout fornecem acesso a tipografia avançada através do objeto Typography e propriedade relacionadas a fontes de outros controles da UI.
O exemplo a seguir mostra o conteúdo de texto hospedado em um FlowDocumentReader, que fornece suporte a busca, navegação, paginação e redimensionamento de conteúdo.
Texto hospedado em FlowDocumentReader
Para obter mais informações, consulte Documentos em Windows Presentation Foundation.
Desenho de Texto Leve
Você pode desenhar texto diretamente em objetos do WPF utilizando o método DrawText do objeto DrawingContext. Para utilizar o método, você cria um objeto FormattedText. Esse objeto permite que você desenhe texto multilinha, no qual cada caractere no texto pode ser formatado individualmente. A funcionalidade do objeto FormattedText contém muito da funcionalidade das flags de DrawText na API Win32. Além disso, o objeto FormattedText contém funcionalidade tal como suporte a reticências, no qual reticências são exibidas quando o texto excede seu limite. O exemplo a seguir mostra texto com diversos formatos aplicados a ele, incluindo um gradiente linear na segunda e terceira palavras.
Texto exibido utilizando objeto FormattedText
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 um string de texto.
Contorno do texto usando um pincel de gradiente linear
Os exemplos a seguir ilustram diversas formas de criar efeitos visuais interessantes modificando o traço, preenchimento e destaque do texto convertido.
Exemplo de definição de traço e preenchimento com diferentes cores.
Exemplo de um pincel de imagem aplicado ao traço
Exemplo de um pincel de imagem aplicado ao traço e destaque.
Para mais informações sobre o objeto FormattedText, veja Drawing Formatted Text.
Formatação de Texto Avançada
No nível mais avançado das APIs de texto, WPF lhe oferece a capacidade de criar layout de texto personalizado utilizando o objeto TextFormatter e outros tipos no namespace System.Windows.Media.TextFormatting. O TextFormatter e classes associadas permitem que você implemente layout de texto personalizado que suporte sua própria definição de formatos de caractere, estilos de parágrafo, regras de quebra de linha, e outras características de layout para texto internacional. Há muito poucos casos em que você vai querer sobrepor a implementação default do suporte a layout de texto do WPF. Entretanto, se você estivesse criando um controle ou aplicação de edição de texto, você pode requerer uma implementação diferente da implementação default do WPF.
Diferente de uma API de texto tradicional, o TextFormatter interage com um cliente de layout de texto através de métodos de callback. 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 a aplicação cliente e TextFormatter.
Interação entre aplicação e TextFormatter
Para mais detalhes sobre como criar layout de texto personalizado, veja Formatação de Texto Avançada.
Recursos
Uma técnica útil para aprender sobre características de OpenType é utilizar XamlPad para criar marcação que experimenta com diferentes propriedades tipográficas. Para obter mais informações, consulte XAMLPad.
Testando fontes OpenType com XamlPad
Consulte também
Conceitos
Otimizando o desempenho: Texto