Partager via


Introduction à l'objet GlyphRun et à l'élément Glyphs

Cette rubrique décrit l'objet GlyphRun et l'élément Glyphs.

Cette rubrique comprend les sections suivantes.

  • Introduction à GlyphRun
  • Objet GlyphRun
  • Élément Glyphs
  • Métrique de glyphe
  • Balise de glyphes
  • Rubriques connexes

Introduction à GlyphRun

Windows Presentation Foundation (WPF) fournit une prise en charge de texte avancée comprenant une balise de niveau glyphe avec accès direct au Glyphs pour les clients qui souhaitent intercepter et rendre le texte persistant après la mise en forme. Ces fonctionnalités fournissent une prise en charge critique pour les différentes conditions de rendu de texte requises dans chacun des scénarios suivants.

  1. Affichage sur écran de documents à format fixe.

  2. Scénarios d'impression.

    • Le Extensible Application Markup Language (XAML) comme langage du périphérique d'impression.

    • Microsoft XPS Document Writer.

    • Les pilotes d'imprimante précédents, sortie d'applications Win32 au format fixe.

    • Format d'impression de spoule.

  3. Représentation de document à format fixe, y compris les clients des versions antérieures de Windows et d'autres périphériques informatiques.

RemarqueRemarque

Glyphs et GlyphRun sont conçus pour la présentation de documents à format fixe et les scénarios d'impression.Windows Presentation Foundation (WPF) fournit plusieurs éléments pour la présentation générale et les scénarios user interface (UI) tels que Label et TextBlock.Pour plus d'informations sur la présentation et les scénarios d'UI, consultez Typographie dans WPF.

Objet GlyphRun

L'objet GlyphRun représente une séquence de glyphes à partir d'un type unique d'une police unique à une taille unique, et avec un style de rendu unique.

GlyphRun inclut à la fois les détails de la police, tels que le glyphe Indices, et les positions de glyphes individuelles. Il inclut également les points de code Unicode d'origine à partir desquels a été générée l'exécution, les informations de mappage offset du tampon caractère-à-glyphe et les indicateurs par-caractères et par-glyphes.

GlyphRun possède un FrameworkElement de niveau supérieur correspondant, Glyphs. Glyphs peut être utilisé dans l'arborescence d'éléments et dans le balisage XAML pour représenter la sortie GlyphRun.

Élément Glyphs

L'élément Glyphs représente la sortie d'un GlyphRun en XAML. La syntaxe de balisage suivante est utilisée pour décrire l'élément 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>

Les définitions de propriété suivantes correspondent aux quatre premiers attributs dans l'exemple de balisage.

Propriété

Description

FontUri

Spécifie un identificateur de ressource : nom de fichier, uniform resource identifier (URI) Web ou référence à une ressource dans l'application .exe ou le conteneur.

FontRenderingEmSize

Indique la taille de police dans les unités de surface de dessin (la valeur par défaut est 0,96 pouces).

StyleSimulations

Spécifie des indicateurs pour les styles gras et italique.

BidiLevel

Spécifie le niveau de mise en page bidirectionnel. Des valeurs paires et nulles impliquent une mise en page de gauche à droite ; des valeurs impaires impliquent une mise en page de droite à gauche.

Propriété d'indices

La propriété Indices est une chaîne de spécifications de glyphe. Si une séquence de formes de glyphes a un cluster unique, la spécification du premier glyphe du cluster est précédée par une spécification indiquant le nombre de glyphes et de points de code qui sont combinés pour former le cluster. La propriété Indices recueille dans une chaîne les propriétés suivantes.

  • Indices de glyphe

  • Largeurs d'avance de glyphe

  • Combinaison de vecteurs d'attachements de glyphe

  • Mappage de cluster des points de code aux glyphes

  • Indicateurs de glyphes

Chaque spécification de glyphe se présente au format suivant.

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

Métrique de glyphe

Chaque glyphe définit des métriques qui spécifient comment il va s'aligner sur d'autres Glyphs. Le graphique suivant définit les diverses qualités typographiques de deux caractères de glyphe différents.

Diagramme des mesures de glyphe

Balise de glyphes

L'exemple de code suivant indique comment utiliser diverses propriétés de l'élément 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>

Voir aussi

Concepts

Typographie dans WPF

Documents dans WPF

Optimisation des performances : texte