Einführung in das "GlyphRun"-Objekt und das "Glyphs"-Element

Aktualisiert: November 2007

In diesem Thema werden das GlyphRun-Objekt und das Glyphs-Element beschrieben.

Dieses Thema enthält folgende Abschnitte.

  • Einführung in GlyphRun
  • Das GlyphRun-Objekt
  • Das Glyphs-Element
  • Symbolmetrik
  • Symbolmarkup
  • Verwandte Abschnitte

Einführung in GlyphRun

Windows Presentation Foundation (WPF) bietet für Kunden, die den formatierten Text abfangen und beibehalten möchten, eine erweiterte Textunterstützung (einschließlich Markup auf Symbolebene) mit einem direkten Zugriff auf Glyphs. Diese Features unterstützen die verschiedenen Anforderungen, die sich aus jedem der folgenden Szenarien an das Rendern von Text ergeben.

  1. Bildschirmanzeige von Dokumenten mit festem Format.

  2. Druckszenarien.

    • Extensible Application Markup Language (XAML) als Gerätesprache für den Drucker.

    • Microsoft XPS-Dokument-Generator.

    • Vorherige Druckertreiber, Ausgabe von Win32-Anwendungen in das feste Format.

    • Druckerspoolformat.

  3. Dokumentendarstellung im festen Format einschließlich Clients für vorherige Versionen von Windows und anderer Computer.

Tipp

Glyphs und GlyphRun sind für die Dokumentendarstellung und für Druckszenarien im festen Format ausgelegt. Windows Presentation Foundation (WPF) stellt etliche Elemente für allgemeine Layout- und Benutzeroberfläche (user interface, UI)-Szenarien, z. B. Label und TextBlock, zur Verfügung. Weitere Informationen zu Layout- und Benutzeroberfläche-Szenarien finden Sie unter Typografie in Windows Presentation Foundation.

Das GlyphRun-Objekt

Das GlyphRun-Objekt stellt eine Sequenz von Symbolen aus einer einzelnen Schriftart einer einzelnen Schriftartfamilie mit einer einzelnen Größe und einem einzelnen Renderingstil dar.

GlyphRun enthält sowohl Schriftartdetails, z. B. Symbol-Indices, als auch einzelne Symbolpositionen. Darüber hinaus enthält dieses Element die ursprünglichen Unicode-Codepunkte, aus denen der GlyphRun generiert wurde, Informationen zur Zuordnung von Zeichen- zu Symbolpufferoffset sowie Flags pro Zeichen und pro Symbol.

GlyphRun verfügt über ein entsprechendes FrameworkElement auf hoher Ebene, nämlich Glyphs. Sie können Glyphs in der Elementstruktur und in XAML-Markup verwenden, um die GlyphRun-Ausgabe darzustellen.

Das Glyphs-Element

Das Glyphs-Element stellt die Ausgabe eines GlyphRun in XAML dar. Es wird die folgende Markupsyntax verwendet, um das Glyphs-Element zu beschreiben.

<!-- 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>

Die folgenden Eigenschaftendefinitionen entsprechen den ersten vier Attributen im Beispielmarkup.

Eigenschaft

Beschreibung

FontUri

Gibt einen Ressourcenbezeichner an: Dateiname, Web-Uniform Resource Identifier (URI) oder Ressourcenverweis in der EXE-Datei der Anwendung oder im Container.

FontRenderingEmSize

Gibt den Schriftgrad in Zeichenoberflächeneinheiten an (der Standardwert ist 0,96 Zoll).

StyleSimulations

Gibt Flags für Fett- und Kursivdruck an.

BidiLevel

Gibt die bidirektionale Layoutebene an. Gerade Werte und Nullwerte führen zu einem Layout von links nach rechts, und ungerade Werte führen zu einem Layout von rechts nach links.

Indices-Eigenschaft

Die Indices-Eigenschaft ist eine Zeichenfolge mit Symbolspezifikationen. Wenn eine Symbolfolge einen einzelnen Cluster bildet, ist der Spezifikation des ersten Symbols im Cluster eine Spezifikation darüber vorangestellt, wie viele Symbole und Codepunkte das Cluster bilden. Die Indices-Eigenschaft fasst die folgenden Eigenschaften in einer Zeichenfolge zusammen.

  • Symbolindizes

  • Symboldickten

  • Kombinieren von Vektoren für das Anfügen von Symbolen

  • Clusterzuordnung zwischen Codepunkten und Symbolen

  • Symbolflags

Jede Symbolspezifikation hat das folgende Format.

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

Symbolmetrik

Jedes Symbol definiert Metriken, die angeben, wie das Symbol an anderen Glyphs-Elementen ausgerichtet wird. In der folgenden Grafik sind die verschiedenen typografischen Eigenschaften von zwei unterschiedlichen Symbolen definiert.

Diagramm der Symbol-Maßangaben

Symbolmarkup

Das folgende Codebeispiel zeigt, wie Sie verschiedene Eigenschaften des Glyphs-Elements in XAML verwenden.

<!-- 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>

Siehe auch

Konzepte

Typografie in Windows Presentation Foundation

Dokumente in Windows Presentation Foundation

Optimieren der Leistung: Text