Compartilhar via


Introdução ao objeto GlyphRun e elemento Glyphs

Este tópico descreve o objeto GlyphRun e o elemento Glyphs.

Este tópico contém as seguintes seções.

  • Introdução ao GlyphRun
  • O objeto GlyphRun
  • O elemento Glyphs
  • Métricas de Glifo
  • Marcação de Glifos
  • Tópicos relacionados

Introdução ao GlyphRun

Windows Presentation Foundation (WPF) fornece suporte avançado de texto incluindo marcação em nível de glifos com acesso direto a Glyphs para clientes que desejam interceptar e persistir texto após a formatação. Esses recursos oferecem suporte crítico aos diferentes requisitos de renderização de texto em cada um dos seguintes cenários.

  1. Tela de exibição de documentos de formato fixo.

  2. Cenários de impressão.

    • Extensible Application Markup Language (XAML) como um idioma de dispositivo de impressora.

    • Microsoft XPS Document Writer.

    • Drivers anteriores de impressora, saídas de aplicativos Win32 para o formato fixo.

    • Formato de impressão em spool.

  3. Representação do documento de formato fixo, incluindo clientes para versões anteriores do Windows e outros dispositivos de computação.

ObservaçãoObservação:

Glyphs e GlyphRun são projetados para cenários de impressão e apresentação do documento de formato fixo. Windows Presentation Foundation (WPF) fornece vários elementos de layout geral e interface do usuário (UI) cenários sistema autônomo Label e TextBlock. Para obter mais informações sobre layouts e cenários de UI, consulte o Tipografia em Windows Presentation Foundation.

O objeto GlyphRun

O objeto GlyphRun representa uma sequência de glifos de uma única face de uma simples fonte em um tamanho único e com um estilo de renderização único.

GlyphRun inclui ambos os detalhes da fonte como glifos Indices e posições glifo individuais. Ele também inclui os pontos de código Unicode originais a partir dos quais a execução foi gerada, informações de mapeamento de deslocamento de buffer de caracteres para gllifo, e sinalizadores por caracteres e por glifo.

GlyphRun tem um alto nível correspondente FrameworkElement, Glyphs. Glyphs pode ser usado na árvore de elemento e em XAML marcação para representar GlyphRun saída.

O elemento Glyphs

O elemento Glyphs representa a saída de um GlyphRun no XAML. A seguinte sintaxe de marcação é usada para descrever o 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>

As seguintes definições de propriedade correspondem aos quatro primeiros atributos na marcação de exemplo.

Propriedade

Descrição

FontUri

Especifica um identificador de recurso: nome de arquivo, Web uniform resource identifier (URI), ou referência de recurso do aplicativo .exe ou contêiner.

FontRenderingEmSize

Especifica o tamanho da fonte em unidades de superfície de desenho (o padrão é .96 polegadas).

StyleSimulations

Especifica os sinalizadores para estilos em negrito e itálico.

BidiLevel

Especifica o nível de layout bidirecional. Valores pares e zero implicam layout da esquerda para a direita; valores ímpares implicam layout da direita para a esquerda.

Propriedades de índices

A propriedade Indices é uma sequência de caracteres de especificações de glifo. Onde uma sequência de glifos formam um único cluster, a especificação do primeiro glifo no cluster é precedida por uma especificação de quantos glifos e quantos pontos de código combinam para formar o cluster. A propriedade Indices coleta em uma sequência de caracteres as seguintes propriedades.

  • Índices de Glifo

  • Larguras de Avanço de Glifo

  • Combinando vetores de anexo de glifo

  • Mapeamento de cluster a partir de pontos de código para glifos

  • Sinalizadores de Glifo

Cada especificação de glifo tem o seguinte formato.

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

Métricas de Glifo

Cada glifo define métricas que especificam como ele se alinha com outros Glyphs. O gráfico a seguir define as vários qualidades tipográficas de dois caracteres de glifo diferentes.

Diagrama gráfico de medidas de glifo

Marcação de Glifos

O exemplo de código a seguir mostra como usar várias propriedades do elemento Glyphs no 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>

Consulte também

Conceitos

Tipografia em Windows Presentation Foundation

Documentos em Windows Presentation Foundation

Otimizando o desempenho: Texto