Condividi tramite


Introduzione all'oggetto GlyphRun e all'elemento Glyphs

Aggiornamento: novembre 2007

In questo argomento vengono descritti l'oggetto GlyphRun e l'elemento Glyphs.

Nel presente argomento sono contenute le seguenti sezioni.

  • Introduzione a GlyphRun
  • Oggetto GlyphRun
  • Elemento Glyphs
  • Metrica del glifo
  • Markup dei glifi
  • Argomenti correlati

Introduzione a GlyphRun

In Windows Presentation Foundation (WPF) viene fornito un supporto avanzato per il testo, incluso il markup a livello di glifo con accesso diretto a Glyphs per i clienti che desiderano intercettare e salvare in modo permanente il testo dopo la formattazione. Queste funzionalità forniscono un supporto critico per i diversi requisiti del rendering di testo in ognuno dei seguenti scenari.

  1. Visualizzazione di documenti con formato fisso.

  2. Scenari di stampa.

    • Extensible Application Markup Language (XAML) come linguaggio della stampante.

    • Processo di scrittura documenti XPS Microsoft.

    • Driver della stampante precedenti, restituiti dalle applicazioni Win32 nel formato fisso.

    • Formato di spooling della stampa.

  3. Rappresentazione di documenti con formato fisso, inclusi i client per versioni precedenti di Windows e altri dispositivi di elaborazione.

Nota

Gli oggetti Glyphs e GlyphRun sono progettati per la presentazione di documenti con formato fisso e scenari di stampa. In Windows Presentation Foundation (WPF) vengono forniti diversi elementi per il layout generale e gli scenari dell'interfaccia utente, ad esempio Label e TextBlock. Per ulteriori informazioni sul layout e sugli scenari dell'interfaccia utente, vedere Funzionalità tipografiche di Windows Presentation Foundation.

Oggetto GlyphRun

L'oggetto GlyphRun rappresenta una sequenza di glifi di una singola icona di un unico carattere in una singola dimensione e con un unico stile di rendering.

L'oggetto GlyphRun include i dettagli relativi ai tipi di carattere quali la proprietà Indices dei glifi e le posizioni dei singoli glifi. Include, inoltre, gli elementi di codice Unicode originali da cui è stata generata l'esecuzione, le informazioni sul mapping dell'offset del buffer tra carattere e glifo e i flag per carattere e per glifo.

L'oggetto GlyphRun dispone di un oggetto FrameworkElement, Glyphs corrispondente di livello elevato. L'oggetto Glyphs può essere utilizzato nella struttura ad albero dell'elemento e nel markup XAML per rappresentare l'output GlyphRun.

Elemento Glyphs

L'elemento Glyphs rappresenta l'output di GlyphRun in XAML. La sintassi di markup seguente viene utilizzata per descrivere l'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>

Le definizioni delle proprietà seguenti corrispondono ai primi quattro attributi del markup di esempio.

Proprietà

Descrizione

FontUri

Specifica un identificatore di risorsa: nome file, Uniform Resource Identifier (URI) del Web o riferimento di risorsa nell'applicazione con estensione exe o nel contenitore.

FontRenderingEmSize

Specifica la dimensione del carattere nelle unità della superficie di disegno (l'impostazione predefinita è 0,96 pollici).

StyleSimulations

Specifica i flag per gli stili grassetto e corsivo.

BidiLevel

Specifica il livello di layout bidirezionale. I valori pari e lo zero implicano un layout da sinistra a destra, mentre i valori dispari implicano un layout da destra a sinistra.

Proprietà degli indici

La proprietà Indices è una stringa di specifiche del glifo. Quando una sequenza di glifi forma un cluster singolo, la specifica del primo glifo nel cluster viene preceduta da una specifica del numero di glifi e di elementi di codice combinati per formare il cluster. La proprietà Indices raccoglie in una stringa le seguenti proprietà.

  • Indici del glifo

  • Distanze di avanzamento del glifo

  • Combinazione dei vettori di connessione dei glifi

  • Mapping del cluster tra gli elementi di codice e i glifi

  • Flag del glifo

Ciascuna specifica del glifo presenta il formato seguente.

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

Metrica del glifo

Ciascun glifo definisce la metrica che ne specifica la modalità di allineamento con altri oggetti Glyphs. Nell'immagine seguente vengono definite le varie qualità tipografiche di due diversi caratteri glifi.

Diagramma delle misure dei glifi

Markup dei glifi

Nell'esempio di codice seguente viene illustrato come utilizzare le diverse proprietà dell'elemento Glyphs in 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>

Vedere anche

Concetti

Funzionalità tipografiche di Windows Presentation Foundation

Documenti di Windows Presentation Foundation

Ottimizzazione delle prestazioni: testo