Compartir a través de


Introducción al objeto GlyphRun y al elemento Glyphs

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

Introducción a GlyphRun

Windows Presentation Foundation (WPF) proporciona compatibilidad avanzada con texto, incluido el marcado a nivel de glifo con acceso directo a Glyphs para los clientes que desean interceptar y conservar texto después del formato. Estas características proporcionan compatibilidad crítica con los distintos requisitos de representación de texto en cada uno de los escenarios siguientes.

  1. Pantalla en la que se muestran los documentos de formato fijo.

  2. Escenarios de impresión.

    • Lenguaje de marcado extensible de aplicaciones (XAML) como lenguaje de impresora de dispositivos.

    • Escritor de documentos de Microsoft XPS.

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

    • Formato de cola de impresión.

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

Nota:

Glyphs y GlyphRun están diseñados para escenarios de impresión y presentación de documentos de formato fijo. 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 WPF.

El objeto GlyphRun

El GlyphRun objeto representa una secuencia de glifos de una sola cara de una sola fuente a un solo tamaño y con un estilo de representación único.

GlyphRun incluye los detalles de fuente, como el glifo Indices y las posiciones individuales del glifo. También incluye los puntos de código Unicode originales a partir de los cuales se generó la ejecución, la información de asignación de desplazamientos del búfer de caracteres a glifos, así como las marcas por carácter y por glifo.

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

Elemento de Glifos

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

<!-- The example shows how to use a Glyphs object. -->
<Page
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://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 siguientes definiciones de propiedad corresponden a los cuatro primeros atributos del marcado de ejemplo.

Propiedad Descripción
FontUri Especifica un identificador de recurso: nombre de archivo, identificador uniforme de recursos web (URI) o referencia de recursos en la aplicación .exe o contenedor.
FontRenderingEmSize Especifica el tamaño de fuente en unidades de superficie de dibujo (el valor predeterminado es de 96 pulgadas).
StyleSimulations Especifica indicadores para estilos en negrita y cursiva.
BidiLevel Especifica el nivel de diseño bidireccional. Los valores par-numerados y cero implican el diseño de izquierda a derecha; Los valores con números impares implican un diseño de derecha a izquierda.

Índices (propiedad)

La Indices propiedad es una cadena de especificaciones de glifo. Cuando una secuencia de glifos forma un único clúster, la especificación del primer glifo del clúster está precedida por una especificación de cuántos glifos y cuántos puntos de código se combinan para formar el clúster. La Indices propiedad recopila en una cadena las siguientes propiedades.

  • Índices de glifos tipográficos

  • Anchos de avance de los glifos

  • Combinación de vectores de adjuntamiento de glifos

  • Asignación de clústeres desde puntos de código a glifos

  • Marcas de glifo

Cada especificación de glifo tiene la siguiente forma.

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

Métricas de glifo

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

Digrama de medidas de glifo

Marcado de glifos

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

<!-- The example shows how to use different property settings of Glyphs objects. -->
<Canvas
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://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>

Consulte también