Freigeben über


Einführung in das GlyphRun-Objekt und das Glyphen-Element

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

Einführung in GlyphRun

Windows Presentation Foundation (WPF) bietet erweiterte Unterstützung für Text, einschließlich Markup auf Glyphenebene mit direktem Zugriff auf Glyphs für Kunden, die Text nach der Formatierung abfangen und beibehalten möchten. Diese Features bieten wichtige Unterstützung für die verschiedenen Anforderungen an das Rendern von Text in jedem der folgenden Szenarien.

  1. Bildschirmanzeige von Dokumenten mit festem Format

  2. Druckszenarios

    • Extensible Application Markup Language (XAML) als Gerätedruckersprache.

    • Microsoft XPS-Dokument-Writer.

    • Ältere Druckertreiber geben Win32-Anwendungen in einem festen Format aus.

    • Druckerspoolformat

  3. Dokumentdarstellung im festen Format, einschließlich Clients für frühere Versionen von Windows und anderen Computergeräten.

Anmerkung

Glyphs und GlyphRun sind für Dokumentpräsentations- und Druckszenarien mit fester Formatierung ausgelegt. WPF bietet verschiedene Elemente für allgemeine Layout- und Benutzeroberflächenszenarien wie Label und TextBlock. Weitere Informationen zu Layout- und Benutzeroberflächenszenarios finden Sie unter Typografie in WPF.

Das GlyphRun-Objekt

Das GlyphRun-Objekt stellt eine Sequenz von Glyphen aus einer einzigen Schriftart, einer einzigen Schriftart, einer einzigen Größe und mit einem einzigen Renderingstil dar.

GlyphRun enthält sowohl Schriftdetails wie Glyphe Indices als auch einzelne Glyphenpositionen. Das Element enthält auch die ursprünglichen Codepunkte, aus denen die Ausführung generiert wurde, Informationen zur Zeichen-zu-Glyphe-Pufferoffsetzuordnung sowie zeichen- und glyphenspezifische Flags.

GlyphRun hat ein entsprechendes übergeordnetes FrameworkElement-Element, Glyphs. Glyphs kann in der Elementstruktur und im XAML-Markup verwendet werden, um die Ausgabe von GlyphRun darzustellen.

Das Glyphs-Element

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

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

Die folgenden Eigenschaftendefinitionen entsprechen den ersten vier Attributen im Beispielmarkup.

Eigentum Beschreibung
FontUri Gibt einen Ressourcenbezeichner an: Dateiname, Web-Uniform Resource Identifier (URI) oder Ressourcenverweis in der Anwendung .exe oder im Container.
FontRenderingEmSize Gibt die Schriftgröße in Einheiten der Zeichenfläche an (Standardwert ist 0,96 Zoll).
StyleSimulations Gibt Flags für Fett-und Kursivformate an.
BidiLevel Gibt die bidirektionale Layoutebene an. Gerade Werte und Nullwerte implizieren Layout von links nach rechts; ungerade Werte implizieren Layout von rechts nach links.

Indices-Eigenschaft

Die Indices-Eigenschaft ist eine Abfolge von Glyphenspezifikationen. Wenn eine Glyphsequenz ein einzelnes Cluster bildet, wird der Spezifikation der ersten Glyphe im Cluster die Spezifikation vorangestellt, wie viele Glyphe und Codepunkte kombiniert werden, um das Cluster zu bilden. Die Eigenschaft Indices erfasst in einer Zeichenfolge die folgenden Eigenschaften.

  • Glyphindizes

  • Symboldikten

  • Kombinieren von Glyphen-Anlagevektors

  • Clusterzuordnung zwischen Codepunkten und Glyphen

  • Glyphenflaggen

Jede Glyphenspezifikation weist das folgende Formular auf.

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

Glyphmetriken

Jede Glyphe definiert Metriken, die angeben, wie sie an anderen Glyphs-Elementen ausgerichtet wird. Die folgende Grafik definiert die verschiedenen typografischen Eigenschaften von zwei verschiedenen Glyphenzeichen.

Diagramm der Glyphmaße

Glyphenmarkup

Das folgende Codebeispiel zeigt, wie verschiedene Eigenschaften des Glyphs-Elements in XAML verwendet werden.

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

Weitere Informationen