Compartir a través de


Tipografía en WPF

En este tema se presentan las principales características tipográficas de WPF. Estas características incluyen la calidad y el rendimiento mejorados de la representación de texto, la compatibilidad con tipografía OpenType, el texto internacional mejorado, la compatibilidad con fuentes mejoradas y las nuevas interfaces de programación de aplicaciones de texto (API).

Calidad y rendimiento mejorados del texto

El texto de WPF se representa mediante Microsoft ClearType, lo que mejora la claridad y la legibilidad del texto. ClearType es una tecnología de software desarrollada por Microsoft que mejora la legibilidad del texto en lcDs existentes (pantallas de cristal líquido), como pantallas portátiles, pantallas de Pocket PC y monitores de panel plano. ClearType usa la representación de sub píxeles que permite mostrar texto con una mayor fidelidad a su forma verdadera alineando caracteres en una parte fraccionaria de un píxel. La resolución adicional aumenta la nitidez de los pequeños detalles en la pantalla de texto, lo que facilita mucho la lectura durante largas duraciones. Otra mejora de ClearType en WPF es el suavizado en la dirección y, que suaviza las partes superiores e inferiores de curvas poco profundas en caracteres de texto. Para obtener más información sobre las características de ClearType, consulte Información general sobre ClearType.

Texto con suavizado de bordes ClearType en dirección y
Texto con ClearType y antialiasing en la dirección y

Toda la canalización de representación de texto puede acelerarse por hardware en WPF siempre que la máquina cumpla el nivel mínimo de hardware necesario. La representación que no se puede realizar mediante hardware vuelve a la representación de software. La aceleración de hardware afecta a todas las fases de la cadena de procesamiento de texto, desde el almacenamiento de glifos individuales, la composición de secuencias de glifos, la aplicación de efectos, hasta aplicar el algoritmo de mezcla ClearType al resultado final mostrado. Para obtener más información sobre la aceleración de hardware, consulte Niveles de representación de gráficos.

Diagrama de la canalización de representación de texto

Además, el texto animado, ya sea por carácter o glifo, aprovecha al máximo la funcionalidad de hardware gráfico habilitada por WPF. Esto da como resultado una animación de texto suave.

Tipografía enriquecida

El formato de fuente OpenType es una extensión del formato de fuente TrueType®. El formato de fuente OpenType fue desarrollado conjuntamente por Microsoft y Adobe, y proporciona una gran variedad de características tipográficas avanzadas. El Typography objeto expone muchas de las características avanzadas de las fuentes OpenType, como alternativas estilísticas y floreos. Windows SDK proporciona un conjunto de fuentes OpenType de ejemplo diseñadas con características enriquecidas, como las fuentes Pericles y Pescadero. Para obtener más información, vea Sample OpenType Font Pack.

La fuente OpenType de Pericles contiene glifos adicionales que proporcionan alternativas estilísticas al conjunto estándar de glifos. En el texto siguiente se muestran glifos alternativos estilísticos.

Texto que usa glifos estilísticos alternativos de OpenType

Los floreos son glifos decorativos que usan ornamentos elaborados a menudo asociados con la caligrafía. En el texto siguiente se muestran glifos estándar y ornamentales para la fuente Pescadero.

Texto que utiliza el estándar OpenType y glifos ornamentales

Para obtener más información sobre las características de OpenType, consulte Características de fuente OpenType.

Soporte mejorado para texto internacional

WPF proporciona compatibilidad mejorada con texto internacional al proporcionar las siguientes características:

  • Espaciado automático de líneas en todos los sistemas de escritura mediante medidas adaptables.

  • Amplia compatibilidad con texto internacional. Para obtener más información, vea Globalización para WPF.

  • Separación de líneas guiadas por el lenguaje, guiones y justificación.

Compatibilidad mejorada con fuentes

WPF proporciona compatibilidad mejorada con fuentes proporcionando las siguientes características:

  • Unicode para todo el texto. El comportamiento y la selección de fuentes ya no requieren charset o codepage.

  • Comportamiento de fuente independiente de la configuración global, como la configuración regional del sistema.

  • Separe los tipos FontWeight, FontStretch y FontStyle para definir un FontFamily. Esto proporciona mayor flexibilidad que en la programación win32, en la que se usan combinaciones booleanas de cursiva y negrita para definir una familia de fuentes.

  • La dirección de escritura (horizontal frente a vertical) se controla independientemente del nombre de fuente.

  • Vinculación de fuentes y sustitución de fuentes en un archivo XML portátil mediante la tecnología de fuentes compuestas. Las fuentes compuestas permiten la construcción de fuentes multilingües de gama completa. Las fuentes compuestas también proporcionan un mecanismo que evita mostrar glifos que faltan. Para obtener más información, vea los comentarios en la clase FontFamily.

  • Fuentes internacionales creadas a partir de fuentes compuestas, utilizando un grupo de fuentes de un solo idioma. Esto ahorra en los costos de recursos al desarrollar fuentes para varios lenguajes.

  • Fuentes compuestas integradas en un documento, lo que permite la portabilidad del documento. Para obtener más información, vea los comentarios en la clase FontFamily.

Nuevas interfaces de programación de aplicaciones de texto (API)

WPF proporciona varias API de texto que los desarrolladores usarán al incluir texto en sus aplicaciones. Estas API se agrupan en tres categorías:

  • Diseño e interfaz de usuario. Controles de texto comunes para la interfaz gráfica de usuario (GUI).

  • Dibujo de texto ligero. Permite dibujar texto directamente en objetos.

  • Formato de texto avanzado. Permite implementar un motor de texto personalizado.

Diseño e interfaz de usuario

En el nivel más alto de funcionalidad, las API de texto proporcionan controles comunes de interfaz de usuario como Label, TextBlocky TextBox. Estos controles proporcionan los elementos básicos de la interfaz de usuario dentro de una aplicación y ofrecen una manera fácil de presentar e interactuar con texto. Controles como RichTextBox y PasswordBox permiten un manejo de texto más avanzado o especializado. Y clases como TextRange, TextSelectiony TextPointer permiten una manipulación de texto útil. Estos controles de interfaz de usuario proporcionan propiedades como FontFamily, FontSizey FontStyle, que permiten controlar la fuente que se usa para representar el texto.

Uso de efectos de mapa de bits, transformaciones y efectos de texto

WPF permite crear usos visualmente interesantes de texto mediante características como efectos de mapa de bits, transformaciones y efectos de texto. En el ejemplo siguiente se muestra un tipo de efecto de sombra paralela aplicado al texto.

Sombra de texto con suavidad = 0,25

En el siguiente ejemplo se muestra un efecto de sombra paralela y ruido aplicados al texto.

Sombra de texto con ruido

En el ejemplo siguiente se muestra un efecto de iluminado externo aplicado al texto.

Sombra de texto mediante OuterGlowBitmapEffect

En el ejemplo siguiente se muestra un efecto de desenfoque aplicado al texto.

Sombra de texto mediante blurBitmapEffect

En el ejemplo siguiente se muestra la segunda línea de texto escalada por 150% a lo largo del eje X y la tercera línea de texto escalada por 150% a lo largo del eje Y.

Texto escalado mediante ScaleTransform

En el ejemplo siguiente se muestra el texto sesgado a lo largo del eje X.

Texto inclinado mediante una transformada de sesgo

Un TextEffect objeto es un objeto auxiliar que permite tratar el texto como uno o varios grupos de caracteres en una cadena de texto. En el ejemplo siguiente se muestra un carácter individual siendo rotado. Cada carácter se gira de forma independiente a intervalos de 1 segundo.

Captura de pantalla del efecto de texto giratorio

Uso de documentos de flujo de trabajo

Además de los controles comunes de la interfaz de usuario, WPF ofrece un control de diseño para la presentación de texto, el FlowDocument elemento . El FlowDocument elemento, junto con el DocumentViewer elemento , proporciona un control para grandes cantidades de texto con distintos requisitos de diseño. Los controles de diseño proporcionan acceso a la tipografía avanzada a través del Typography objeto y las propiedades relacionadas con fuentes de otros controles de interfaz de usuario.

En el ejemplo siguiente se muestra el contenido de texto hospedado en un FlowDocumentReader, que proporciona soporte para búsqueda, navegación, paginación y escalado de contenido.

Captura de pantalla que muestra las fuentes OpenType.

Para obtener más información, vea Documentos en WPF.

Dibujo de texto ligero

Puede dibujar texto directamente en objetos WPF mediante el método DrawText del objeto DrawingContext. Para usar este método, se crea un FormattedText objeto . Este objeto permite dibujar texto de varias líneas, en el que cada carácter del texto se puede formatear individualmente. La funcionalidad del FormattedText objeto contiene gran parte de la funcionalidad de las marcas DrawText en la API de Windows. Además, el FormattedText objeto contiene funcionalidad como la compatibilidad con puntos suspensivos, en la que se muestran puntos suspensivos cuando el texto supera sus límites. En el ejemplo siguiente se muestra el texto que tiene varios formatos aplicados, incluido un degradado lineal en la segunda y tercera palabras.

Texto que se muestra mediante el objeto FormattedText

Puede convertir texto con formato en Geometry objetos, lo que le permite crear otros tipos de texto visualmente interesantes. Por ejemplo, podría crear un Geometry objeto basado en el esquema de una cadena de texto.

Texto con contorno usando un pincel de degradado lineal

En los ejemplos siguientes se muestran varias formas de crear efectos visuales interesantes modificando el trazo, el relleno y el resaltado del texto convertido.

Texto con diferentes colores para relleno y trazo

Texto con pincel de imagen aplicado al trazo

Texto con pincel de imagen aplicado al trazo y resaltado

Para obtener más información sobre el FormattedText objeto, vea Dibujar texto con formato.

Formato de texto avanzado

En el nivel más avanzado de las API de texto, WPF te ofrece la posibilidad de crear un diseño de texto personalizado utilizando el objeto TextFormatter y otros tipos en el espacio de nombres System.Windows.Media.TextFormatting. TextFormatter y las clases asociadas le permiten implementar un diseño de texto personalizado que admite su propia definición de formatos de caracteres, estilos de párrafo, reglas de salto de línea y otras características de diseño para texto internacional. Hay muy pocos casos en los que podría querer sobrescribir la implementación predeterminada de la compatibilidad con el diseño de texto de WPF. Sin embargo, si estaba creando un control de edición de texto o una aplicación, podría requerir una implementación diferente de la implementación predeterminada de WPF.

A diferencia de una API de texto tradicional, el TextFormatter interactúa con un cliente de diseño de texto a través de un conjunto de métodos de devolución de llamada. Requiere que el cliente proporcione estos métodos en una implementación de la TextSource clase . En el diagrama siguiente se muestra la interacción de diseño de texto entre la aplicación cliente y TextFormatter.

Diagrama del cliente de diseño de texto y TextFormatter

Para obtener más información sobre cómo crear un diseño de texto personalizado, consulte Formato de texto avanzado.

Consulte también