Partager via


Introduction à l’objet GlyphRun et à l’élément Glyphes

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, y compris le balisage au niveau du glyphe avec un accès direct à Glyphs pour les clients qui souhaitent intercepter et conserver du texte après la mise en forme. Ces fonctionnalités prennent en charge les différentes exigences de rendu de texte dans chacun des scénarios suivants.

  1. Affichage de l’écran des documents au 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 d’applications Win32 au format fixe.

    • Format de spouleur 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 (IU), 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 à partir d’un seul visage 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 les glyphes Indices et les positions individuelles des glyphes. Il inclut également les points de code Unicode d’origine à partir desquels l’exécution a été générée, les informations de mappage des décalages de mémoire tampon de caractère à glyphe, ainsi que des indicateurs par caractère et par glyphe.

GlyphRun a un FrameworkElement, Glyphs de haut niveau correspondant. Glyphs peut être utilisé dans l’arborescence des éléments et dans le balisage XAML pour représenter la sortie de 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="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é suivantes correspondent aux quatre premiers attributs de l’exemple de balisage.

Propriété Descriptif
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 dans les unités de surface de dessin (la valeur par défaut est .96 pouces).
StyleSimulations Spécifie les indicateurs des styles gras et italique.
BidiLevel Spécifie le niveau de mise en page bidirectionnel. Les valeurs paires et zéro impliquent une disposition de gauche à droite ; les valeurs impaires impliquent une disposition de droite à gauche.

Propriété Indices

La propriété Indices est une chaîne de spécifications de glyphe. Lorsqu’une séquence de glyphes forme un seul cluster, la spécification du premier glyphe du cluster est précédée d’une spécification du nombre de glyphes et du nombre de points de code combinés pour former le cluster. La propriété Indices 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 cluster à partir de points de code vers des glyphes

  • Indicateurs de glyphe

Chaque spécification de glyphe a la forme suivante.

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

Métriques des glyphes

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

diagramme Diagramme des mesures de glyphe

Balisage des glyphes

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