Partager via


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

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

Introduction à GlyphRun

Windows Presentation Foundation (WPF) fournit une prise en charge avancée du texte, notamment le balisage au niveau du glyphe avec un accès direct aux Glyphs clients qui souhaitent intercepter et conserver du texte après la mise en forme. Ces fonctionnalités offrent une prise en charge critique pour les différentes spécifications de rendu de texte propres à chacun des scénarios suivants.

  1. Affichage à l’écran de documents de format fixe.

  2. Scénarios d’impression.

    • Langage XAML (Extensible Application Markup Language) en tant que langage d’imprimante d’appareil.

    • Enregistreur de documents Microsoft XPS.

    • Pilotes d’imprimante précédents, sortie des applications Win32 au format fixe.

    • Format de mise en attente d’impression.

  3. Représentation de document au format fixe, y compris les clients pour les versions précédentes de Windows et d’autres appareils informatiques.

Remarque

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

Objet GlyphRun

L’objet GlyphRun représente une séquence de glyphes d’un seul visage d’une seule police à une taille unique et avec un style de rendu unique.

GlyphRun inclut les deux détails de police tels que les glyphes Indices et les positions de glyphe individuelle. Il inclut également les points de code Unicode d’origine que l’exécution a été généré à partir des informations de mappage de décalage de mémoire tampon de caractère à glyphe, ainsi que des indicateurs par caractère et par glyphe.

GlyphRun a un haut niveau FrameworkElementcorrespondant , Glyphs. Glyphs peut être utilisé dans l’arborescence des éléments et dans le balisage XAML pour représenter la GlyphRun sortie.

Élément Glyphs

L’élément Glyphs représente la sortie d’un GlyphRun fichier 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="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>

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

Propriété Description
FontUri Spécifie un identificateur de ressource : nom de fichier, URI (Web uniform resource identifier) ou référence de ressource dans l’application .exe ou conteneur.
FontRenderingEmSize Spécifie la taille de police en unités de surface de dessin (la valeur par défaut est 0,96 pouce).
StyleSimulations Spécifie les indicateurs des styles gras et italique.
BidiLevel Spécifie le niveau de disposition bidirectionnelle. Les valeurs paires et nulles impliquent une disposition de gauche à droite ; les valeurs impaires impliquent une disposition de droite à gauche.

Propriété Indices

La Indices propriété est une chaîne de spécifications de glyphe. Quand une séquence de glyphes forme un groupement unique, la spécification du premier glyphe du groupement est précédée d’une spécification qui indique le nombre de glyphes et de points de code qui se combinent pour former le regroupement. La Indices propriété collecte dans une chaîne les propriétés suivantes.

  • Index de glyphe

  • Largeurs d’avance de glyphe

  • Combinaison de vecteurs d’attachement de glyphe

  • Mappage de groupement des points de code aux glyphes

  • Indicateurs de glyphe

Chaque spécification de glyphe présente la forme suivante.

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

Métriques de glyphe

Chaque glyphe définit des métriques qui spécifient son alignement avec d’autres Glyphs. Le graphique suivant définit les diverses qualités typographiques de deux glyphes de caractères différents.

Diagraph of glyph measurements

Balisage Glyphs

L’exemple de code suivant montre comment utiliser différentes propriétés de l’élément Glyphs 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>

Voir aussi