Share via


Introducción al objeto GlyphRun y al elemento Glyphs

Actualización: noviembre 2007

En este tema se describen el objeto GlyphRun y el elemento Glyphs.

Este tema contiene las secciones siguientes.

  • Introducción a GlyphRun
  • Objeto GlyphRun
  • Elemento Glyphs
  • Métricas de glifos
  • Marcado de glifos
  • Temas relacionados

Introducción a GlyphRun

Windows Presentation Foundation (WPF) proporciona compatibilidad con texto avanzado que incluye marcado de nivel de glifos con acceso directo a Glyphs para los clientes que desean interceptar y conservar el texto después de darle formato. Estas características proporcionan compatibilidad vital para los distintos requisitos de representación de texto de cada uno de los escenarios siguientes.

  1. Presentación en pantalla de documentos de formato fijo.

  2. Escenarios de impresión.

    • Lenguaje de marcado de aplicaciones extensible (XAML) como lenguaje de dispositivos de impresión.

    • Escritor de documentos XPS de Microsoft.

    • Controladores de impresora anteriores, salida de aplicaciones de Win32 en formato fijo.

    • Formato de colas de impresión.

  3. Representación de documentos de formato fijo, incluidos clientes de versiones anteriores de Windows y otros dispositivos informáticos.

Nota

Glyphs y GlyphRun se han diseñado para la presentación de documentos de formato fijo y escenarios de impresión. Windows Presentation Foundation (WPF) proporciona varios elementos para escenarios generales de diseño e interfaz de usuario (UI), como Label y TextBlock. Para obtener más información sobre los escenarios de diseño e interfaz de usuario, vea Tipografía en Windows Presentation Foundation.

Objeto GlyphRun

El objeto GlyphRun representa una secuencia de glifos de un solo tipo de letra de una única fuente en un solo tamaño y con un único estilo de representación.

El objeto GlyphRun incluye detalles de la fuente, como la propiedad Indices del glifo y las posiciones de glifo individuales. Además, incluye los puntos de código originales de Unicode a partir de los que se generó la ejecución, información de asignación de desplazamiento de búfer de carácter a glifo, y marcadores por glifo y por carácter.

GlyphRun tiene un objeto FrameworkElement correspondiente de alto nivel, Glyphs. Glyphs se puede utilizar en el árbol de elementos y en marcado XAML para representar la salida de GlyphRun.

Elemento Glyphs

El elemento Glyphs representa la salida de GlyphRun en XAML. La sintaxis de marcado siguiente se utiliza para describir el elemento Glyphs.

<!-- The example shows how to use a Glyphs object. -->
<Page
  xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
  >

   <StackPanel Background="PowderBlue">

      <Glyphs
         FontUri             = "C:\WINDOWS\Fonts\TIMES.TTF"
         FontRenderingEmSize = "100"
         StyleSimulations    = "BoldSimulation"
         UnicodeString       = "Hello World!"
         Fill                = "Black"
         OriginX             = "100"
         OriginY             = "200"
      />

   </StackPanel>
</Page>

Las definiciones de propiedad siguientes corresponden a los primeros cuatro atributos del marcado del ejemplo.

Propiedad

Descripción

FontUri

Especifica un identificador de recursos: el nombre de archivo, identificador de recursos uniforme (URI) de web o referencia de recurso en el archivo .exe o contenedor de la aplicación.

FontRenderingEmSize

Especifica el tamaño de fuente en unidades de la superficie de dibujo (el valor predeterminado es 0,96 pulgadas).

StyleSimulations

Especifica los marcadores para los estilos de negrita y cursiva.

BidiLevel

Especifica el nivel del diseño bidireccional. Los números pares y el cero significan que el diseño es de izquierda a derecha; los valores impares representan un diseño de derecha a izquierda.

Propiedad Indices

La propiedad Indices es una cadena de especificaciones del glifo. En aquellos casos en que una secuencia de glifos forma un clúster único, la especificación del primer glifo del clúster va precedida por un a especificación del número de glifos y puntos de código se combinan para constituir el clúster. La propiedad Indices recopila en una cadena las propiedades siguientes.

  • Índices de glifo

  • Anchos de avance del glifo

  • Combinación de vectores de asociación de glifos

  • Asignación del clúster de los puntos de código a los glifos

  • Marcadores de glifo

Cada especificación del glifo tiene la forma siguiente.

[GlyphIndex][,[Advance][,[uOffset][,[vOffset][,[Flags]]]]]

Métricas de glifos

Cada glifo define métricas que especifican cómo se alinea con otros Glyphs. En el gráfico siguiente se definen las distintas calidades tipográficas de dos caracteres de glifo diferentes.

Diagrama gráfico de medidas de glifo

Marcado de glifos

En el ejemplo de código siguiente se muestra cómo se utilizan diversas propiedades del elemento Glyphs en XAML.

<!-- The example shows how to use different property settings of Glyphs objects. -->
<Canvas
  xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
  Background="PowderBlue"
  >

<Glyphs 
   FontUri             = "C:\WINDOWS\Fonts\ARIAL.TTF"
   FontRenderingEmSize = "36"
   StyleSimulations    = "ItalicSimulation"
   UnicodeString       = "Hello World!"
   Fill                = "SteelBlue"
   OriginX             = "50"
   OriginY             = "75"
/>

<!-- "Hello World!" with default kerning -->
<Glyphs 
   FontUri             = "C:\WINDOWS\Fonts\ARIAL.TTF"
   FontRenderingEmSize = "36"
   UnicodeString       = "Hello World!"
   Fill                = "Maroon"
   OriginX             = "50"
   OriginY             = "150"
/>

<!-- "Hello World!" with explicit character widths for proportional font -->
<Glyphs 
   FontUri             = "C:\WINDOWS\Fonts\ARIAL.TTF"
   FontRenderingEmSize = "36"
   UnicodeString       = "Hello World!"
   Indices             = ",80;,80;,80;,80;,80;,80;,80;,80;,80;,80;,80"
   Fill                = "Maroon"
   OriginX             = "50"
   OriginY             = "225"
/>

<!-- "Hello World!" with fixed-width font -->
<Glyphs 
     FontUri             = "C:\WINDOWS\Fonts\COUR.TTF"
     FontRenderingEmSize = "36"
     StyleSimulations    = "BoldSimulation"
     UnicodeString       = "Hello World!"
     Fill                = "Maroon"
     OriginX             = "50"
     OriginY             = "300"
/>

<!-- "Open file" without "fi" ligature -->
<Glyphs
   FontUri             = "C:\WINDOWS\Fonts\TIMES.TTF"
   FontRenderingEmSize = "36"
   StyleSimulations    = "BoldSimulation"
   UnicodeString       = "Open file"
   Fill                = "SlateGray"
   OriginX             = "400"
   OriginY             = "75"
/>

<!-- "Open file" with "fi" ligature -->
<Glyphs
   FontUri             = "C:\WINDOWS\Fonts\TIMES.TTF"
   FontRenderingEmSize = "36"
   StyleSimulations    = "BoldSimulation"
   UnicodeString       = "Open file"
   Indices             = ";;;;;(2:1)191"
   Fill                = "SlateGray"
   OriginX             = "400"
   OriginY             = "150"
/>

</Canvas>

Vea también

Conceptos

Tipografía en Windows Presentation Foundation

Documentos en Windows Presentation Foundation

Optimizar el rendimiento: Texto