Tipografía en WPFTypography in WPF

En este tema se presentan las características tipográficas principales de WPFWPF.This topic introduces the major typographic features of WPFWPF. Estas características incluyen una mejor calidad y rendimiento de la representación de texto, compatibilidad con tipografía SOpenType, texto internacional mejorado, compatibilidad mejorada con fuentes y nuevas interfaces de programación de aplicaciones de texto (API).These features include improved quality and performance of text rendering, OpenType typography support, enhanced international text, enhanced font support, and new text application programming interfaces (APIs).

Mejora de la calidad y el rendimiento del textoImproved Quality and Performance of Text

El WPFWPF texto en se representa mediante Microsoft ClearType, que mejora la claridad y la legibilidad del texto.Text in WPFWPF is rendered using Microsoft ClearType, which enhances the clarity and readability of text. ClearType es una tecnología de software desarrollada por Microsoft que mejora la legibilidad del texto en pantallas LCD existentes (pantallas de cristal líquido), como pantallas de portátiles, pantallas de Pocket PC y monitores de pantalla plana.ClearType is a software technology developed by Microsoft that improves the readability of text on existing LCDs (Liquid Crystal Displays), such as laptop screens, Pocket PC screens and flat panel monitors. ClearType utiliza la representación de subpíxeles que permite que el texto se muestre con una mayor fidelidad a su forma verdadera alineando caracteres en una parte fraccionaria de un píxel.ClearType uses sub-pixel rendering which allows text to be displayed with a greater fidelity to its true shape by aligning characters on a fractional part of a pixel. Esta resolución adicional aumenta la nitidez de los detalles diminutos en la presentación del texto, lo que facilita la lectura durante largos períodos de tiempo.The extra resolution increases the sharpness of the tiny details in text display, making it much easier to read over long durations. Otra mejora de WPFWPF ClearType en es el suavizado de dirección Y, que suaviza las partes superior e inferior de las curvas poco profundas en caracteres de texto.Another improvement of ClearType in WPFWPF is y-direction anti-aliasing, which smoothes the tops and bottoms of shallow curves in text characters. Para obtener más información sobre las características de ClearType, vea Información general sobre ClearType.For more details on ClearType features, see ClearType Overview.

Texto con función de suavizado de contorno de ClearType en la dirección del eje y
Texto con función de suavizado de contorno de ClearType en la dirección del eje YText with ClearType y-direction antialiasing

La canalización de representación de texto completo se puede acelerar mediante hardware en WPFWPF, siempre y cuando la máquina cumpla los requisitos mínimos de hardware.The entire text rendering pipeline can be hardware-accelerated in WPFWPF provided your machine meets the minimum level of hardware required. Si una representación no se puede realizar mediante hardware, se recurre a la representación mediante software.Rendering that cannot be performed using hardware falls back to software rendering. La aceleración de hardware afecta a todas las fases de la canalización de representación de texto, desde almacenar glifos individuales, componer glifos en corridas de glifos, aplicar efectos hasta aplicar el algoritmo de fusión ClearType a la salida final mostrada.Hardware-acceleration affects all phases of the text rendering pipeline—from storing individual glyphs, compositing glyphs into glyph runs, applying effects, to applying the ClearType blending algorithm to the final displayed output. Para obtener más información sobre la aceleración de hardware, vea Niveles de representación de gráficos.For more information on hardware acceleration, see Graphics Rendering Tiers.

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

Además, el texto animado, ya sea mediante caracteres o glifos, aprovecha al máximo la capacidad de hardware gráfico habilitada por WPFWPF.In addition, animated text, whether by character or glyph, takes full advantage of the graphics hardware capability enabled by WPFWPF. Como resultado, la animación de texto se suaviza.This results in smooth text animation.

Tipografía enriquecidaRich Typography

El formato de fuente OpenType es una extensión del formato de fuente TrueType®.The OpenType font format is an extension of the TrueType® font format. El formato de fuente OpenType fue desarrollado conjuntamente por Microsoft y Adobe, y proporciona una amplia variedad de características tipográficas avanzadas.The OpenType font format was developed jointly by Microsoft and Adobe, and provides a rich assortment of advanced typographic features. El Typography objeto expone muchas de las características avanzadas de las fuentes OpenType, como alternativas estilísticas y swashes.The Typography object exposes many of the advanced features of OpenType fonts, such as stylistic alternates and swashes. Windows SDK proporciona un conjunto de fuentes OpenType de ejemplo diseñadas con características enriquecidas, como las fuentes Pericles y Pescadero.The Windows SDK provides a set of sample OpenType fonts that are designed with rich features, such as the Pericles and Pescadero fonts. Para obtener más información, vea Sample OpenType Font Pack.For more information, see Sample OpenType Font Pack.

La fuente Pericles OpenType contiene glifos adicionales que proporcionan alternativas estilísticas al conjunto estándar de pictogramas.The Pericles OpenType font contains additional glyphs that provide stylistic alternates to the standard set of glyphs. En el texto siguiente se muestran glifos alternativos de estilo.The following text displays stylistic alternate glyphs.

Texto que usa glifos alternativos de estilo OpenTypeText using OpenType stylistic alternate glyphs

Los caracteres floreados son glifos decorativos que usan adornos elaborados que suelen asociarse a la caligrafía.Swashes are decorative glyphs that use elaborate ornamentation often associated with calligraphy. El texto siguiente muestra glifos estándar y swash para la fuente Pescadero.The following text displays standard and swash glyphs for the Pescadero font.

Texto que usa glifos OpenType estándar y floreadosText using OpenType standard and swash glyphs

Para obtener más información sobre las características de OpenType, vea Características de fuente OpenType.For more details on OpenType features, see OpenType Font Features.

Compatibilidad mejorada con texto internacionalEnhanced International Text Support

WPFWPF proporciona compatibilidad mejorada con texto internacional mediante las características siguientes:provides enhanced international text support by providing the following features:

  • Interlineado automático en todos los sistemas de escritura mediante la medición adaptable.Automatic line-spacing in all writing systems, using adaptive measurement.

  • Amplia compatibilidad con texto internacional.Broad support for international text. Para obtener más información, vea Globalización de WPF.For more information, see Globalization for WPF.

  • Saltos de línea, guiones y justificación basados en el idioma.Language-guided line breaking, hyphenation, and justification.

Compatibilidad mejorada con fuentesEnhanced Font Support

WPFWPF proporciona compatibilidad con fuentes mejorada mediante las características siguientes:provides enhanced font support by providing the following features:

  • Se usa Unicode para todo el texto.Unicode for all text. El comportamiento y la selección de la fuente ya no requieren un conjunto de caracteres o página de códigos.Font behavior and selection no longer require charset or codepage.

  • El comportamiento de la fuente es independiente de la configuración global, como la configuración regional del sistema.Font behavior independent of global settings, such as system locale.

  • Separar FontWeight FontStretch, FontStyle , y tipos FontFamilypara definir un archivo .Separate FontWeight, FontStretch, and FontStyle types for defining a FontFamily. Esto proporciona una mayor flexibilidad que en la programación Win32, en la que se utilizan combinaciones booleanas de cursiva y negrita para definir una familia de fuentes.This provides greater flexibility than in Win32 programming, in which Boolean combinations of italic and bold are used to define a font family.

  • La dirección de escritura (horizontal o vertical) se controla con independencia del nombre de la fuente.Writing direction (horizontal versus vertical) handled independent of font name.

  • Vinculación de fuentes y reserva de fuentes en un archivo XML portátil, utilizando tecnología de fuentes compuestas.Font linking and font fallback in a portable XML file, using composite font technology. Las fuentes compuestas permiten la construcción de fuentes multilingües completas.Composite fonts allow for the construction of full range multilingual fonts. Las fuentes compuestas también proporcionan un mecanismo que impide la presentación de los glifos que faltan.Composite fonts also provide a mechanism that avoids displaying missing glyphs. Para obtener más información, consulte FontFamily las observaciones de la clase.For more information, see the remarks in the FontFamily class.

  • Las fuentes internacionales se generan a partir de fuentes compuestas mediante un grupo de fuentes de un solo idioma.International fonts built from composite fonts, using a group of single-language fonts. De este modo se ahorran recursos a la hora de desarrollar fuentes para varios idiomas.This saves on resource costs when developing fonts for multiple languages.

  • Las fuentes compuestas se insertan en un documento, lo que permite la portabilidad de los documentos.Composite fonts embedded in a document, thereby providing document portability. Para obtener más información, consulte FontFamily las observaciones de la clase.For more information, see the remarks in the FontFamily class.

Nuevas interfaces de programación de aplicaciones (API) de textoNew Text Application Programming Interfaces (APIs)

WPFWPFproporciona varias API de texto para que los desarrolladores las usen al incluir texto en sus aplicaciones.provides several text APIs for developers to use when including text in their applications. Estas API se agrupan en tres categorías:These APIs are grouped into three categories:

  • Diseño e interfaz de usuario.Layout and user interface. Los controles de texto comunes para la interfaz gráfica de usuario (GUI).The common text controls for the graphical user interface (GUI).

  • Dibujo de texto ligero.Lightweight text drawing. Permite dibujar texto directamente en objetos.Allows you to draw text directly to objects.

  • Formato de texto avanzado.Advanced text formatting. Permite implementar un motor de texto personalizado.Allows you to implement a custom text engine.

Diseño e interfaz de usuarioLayout and User Interface

En el nivel más alto de funcionalidad, interfaz de usuario (UI)user interface (UI) las LabelAPI TextBlockde TextBoxtexto proporcionan controles comunes como , , y .At the highest level of functionality, the text APIs provide common interfaz de usuario (UI)user interface (UI) controls such as Label, TextBlock, and TextBox. Estos controles proporcionan elementos de IUUI básicos dentro de una aplicación y ofrecen una manera fácil de presentar el texto e interactuar con él.These controls provide the basic IUUI elements within an application, and offer an easy way to present and interact with text. Controles como RichTextBox PasswordBox y permiten un control de texto más avanzado o especializado.Controls such as RichTextBox and PasswordBox enable more advanced or specialized text-handling. Y clases TextRange TextSelectioncomo TextPointer , , y permiten la manipulación de texto útil.And classes such as TextRange, TextSelection, and TextPointer enable useful text manipulation. Estos IUUI controles proporcionan FontFamilypropiedades FontSizecomo FontStyle, , y , que permiten controlar la fuente que se utiliza para representar el texto.These IUUI controls provide properties such as FontFamily, FontSize, and FontStyle, which enable you to control the font that is used to render the text.

Uso de efectos de imagen, transformaciones y efectos de textoUsing Bitmap Effects, Transforms, and Text Effects

WPFWPF permite crear usar el texto de forma visualmente interesante mediante características como efectos de imagen, transformaciones y efectos de texto.allows you to create visually interesting uses of text by uses features such as bitmap effects, transforms, and text effects. En el ejemplo siguiente se muestra un efecto típico de sombra paralela aplicado al texto.The following example shows a typical type of a drop shadow effect applied to text.

Sombra de texto con suavidad = 0.25

En el ejemplo siguiente se muestra un efecto de sombra paralela y ruido aplicado al texto.The following example shows a drop shadow effect and noise applied to text.

Sombra de texto con ruido

En el ejemplo siguiente se muestra un efecto de iluminado exterior aplicado al texto.The following example shows an outer glow effect applied to text.

Sombra de texto usando OuterGlowBitmapEffect

En el ejemplo siguiente se muestra un efecto de desenfoque aplicado al texto.The following example shows a blur effect applied to text.

Sombra de texto usando BlurBitmapEffect

En el ejemplo siguiente se muestra la segunda línea de texto escalada al 150 % a lo largo del eje X y la tercera línea de texto escalada al 150 % a lo largo del eje Y.The following example shows the second line of text scaled by 150% along the x-axis, and the third line of text scaled by 150% along the y-axis.

Texto con escala ajustada usando ScaleTransform

En el ejemplo siguiente se muestra el texto sesgado a lo largo del eje X.The following example shows text skewed along the x-axis.

Texto sesgado usando SkewTransform

Un TextEffect objeto es un objeto auxiliar que permite tratar el texto como uno o varios grupos de caracteres en una cadena de texto.A TextEffect object is a helper object that allows you to treat text as one or more groups of characters in a text string. En el ejemplo siguiente se muestra un carácter individual girado.The following example shows an individual character being rotated. Cada carácter se gira de manera independiente a intervalos de 1 segundo.Each character is rotated independently at 1-second intervals.

Captura de pantalla de efecto de texto girando texto

Uso de documentos dinámicosUsing Flow Documents

Además de IUUI los WPFWPF controles comunes, ofrece un FlowDocument control de diseño para la presentación de texto: el elemento.In addition to the common IUUI controls, WPFWPF offers a layout control for text presentation—the FlowDocument element. El FlowDocument elemento, junto DocumentViewer con el elemento, proporciona un control para grandes cantidades de texto con diferentes requisitos de diseño.The FlowDocument element, in conjunction with the DocumentViewer element, provides a control for large amounts of text with varying layout requirements. Los controles de diseño proporcionan Typography acceso a la tipografía IUUI avanzada a través de las propiedades relacionadas con el objeto y la fuente de otros controles.Layout controls provide access to advanced typography through the Typography object and font-related properties of other IUUI controls.

En el ejemplo siguiente se FlowDocumentReadermuestra el contenido de texto hospedado en un , que proporciona compatibilidad con la búsqueda, la navegación, la paginación y el escalado de contenido.The following example shows text content hosted in a FlowDocumentReader, which provides search, navigation, pagination, and content scaling support.

Captura de pantalla que muestra las fuentes OpenType.

Para obtener más información, vea Documentos en WPF.For more information, see Documents in WPF.

Dibujo de texto ligeroLightweight Text Drawing

Puede dibujar texto WPFWPF directamente en DrawText objetos DrawingContext mediante el método del objeto.You can draw text directly to WPFWPF objects by using the DrawText method of the DrawingContext object. Para utilizar este método, FormattedText cree un objeto.To use this method, you create a FormattedText object. Este objeto permite dibujar texto de varias líneas, en el que se puede dar formato individual a cada carácter del texto.This object allows you to draw multi-line text, in which each character in the text can be individually formatted. La funcionalidad del FormattedText objeto contiene gran parte de la funcionalidad de los DrawText marcas en la API de Windows.The functionality of the FormattedText object contains much of the functionality of the DrawText flags in the Windows API. Además, FormattedText el objeto contiene funcionalidad como la compatibilidad con puntos suspensivos, en la que se muestran puntos suspensivos cuando el texto supera sus límites.In addition, the FormattedText object contains functionality such as ellipsis support, in which an ellipsis is displayed when text exceeds its bounds. En el ejemplo siguiente se muestra texto al que se han aplicado varios formatos diferentes, incluido un degradado lineal en la segunda y tercera palabra.The following example shows text that has several formats applied to it, including a linear gradient on the second and third words.

Texto mostrado mediante un objeto FormattedText

Puede convertir texto con Geometry formato en objetos, lo que le permite crear otros tipos de texto visualmente interesante.You can convert formatted text into Geometry objects, allowing you to create other types of visually interesting text. Por ejemplo, podría Geometry crear un objeto basado en el contorno de una cadena de texto.For example, you could create a Geometry object based on the outline of a text string.

Esquema de texto que usa un pincel de degradado lineal

En los ejemplos siguientes se muestran varias maneras de crear efectos visuales interesantes modificando el trazo, el relleno y el resaltado del texto convertido.The following examples illustrate several ways of creating interesting visual effects by modifying the stroke, fill, and highlight of converted text.

Texto con colores diferentes para relleno y trazo

Texto con pincel de imagen aplicado a trazo

Texto con pincel de imagen aplicado al trazo y resaltado

Para obtener más FormattedText información sobre el objeto, consulte Dibujo de texto con formato.For more information on the FormattedText object, see Drawing Formatted Text.

Formato de texto avanzadoAdvanced Text Formatting

En el nivel más avanzado de WPFWPF las API de texto, ofrece TextFormatter la capacidad de System.Windows.Media.TextFormatting crear un diseño de texto personalizado mediante el objeto y otros tipos en el espacio de nombres.At the most advanced level of the text APIs, WPFWPF offers you the ability to create custom text layout by using the TextFormatter object and other types in the System.Windows.Media.TextFormatting namespace. Las TextFormatter 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.The TextFormatter and associated classes allow you to implement custom text layout that supports your own definition of character formats, paragraph styles, line breaking rules, and other layout features for international text. Se darán muy pocos casos en los que le interese reemplazar la implementación predeterminada de la compatibilidad con el diseño de texto de WPFWPF,There are very few cases in which you would want to override the default implementation of the WPFWPF text layout support. pero si está creando un aplicación o un control de edición de texto, es posible que necesite una implementación diferente de la implementación de WPFWPF predeterminada.However, if you were creating a text editing control or application, you might require a different implementation than the default WPFWPF implementation.

A diferencia de una TextFormatter API de texto tradicional, interactúa con un cliente de diseño de texto a través de un conjunto de métodos de devolución de llamada.Unlike a traditional text API, the TextFormatter interacts with a text layout client through a set of callback methods. Requiere que el cliente proporcione estos métodos TextSource en una implementación de la clase.It requires the client to provide these methods in an implementation of the TextSource class. En el diagrama siguiente se muestra la TextFormatterinteracción de diseño de texto entre la aplicación cliente y .The following diagram illustrates the text layout interaction between the client application and TextFormatter.

Diagrama de TextFormatter y cliente de diseño de texto

Para obtener más información sobre la creación de un diseño de texto personalizado, vea Formato de texto avanzado.For more details on creating custom text layout, see Advanced Text Formatting.

Consulte tambiénSee also