Einführung in das "GlyphRun"-Objekt und das "Glyphs"-Element
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.
Bildschirmanzeige von Dokumenten mit festem Format.
Druckszenarien.
Extensible Application Markup Language (XAML) als Gerätesprache für den Drucker.
Microsoft XPS Document Writer.
Vorherige Druckertreiber, Ausgabe von Win32-Anwendungen in das feste Format.
Druckerspoolformat.
Dokumentendarstellung im festen Format einschließlich Clients für vorherige Versionen von Windows und anderer Computer.
Hinweis |
---|
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 user interface (UI)-Szenarien, z. B. Label und TextBlock, zur Verfügung.Weitere Informationen zu Layout- und UI-Szenarien finden Sie unter Typografie in WPF. |
Das GlyphRun-Objekt
Das GlyphRun-Objekt stellt eine Sequenz von Symbolen aus einer einzelnen Schriftart einer einzelnen Schriftfamilie 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 |
---|---|
Gibt einen Ressourcenbezeichner an: Dateiname, Web-uniform resource identifier (URI) oder Ressourcenverweis in der EXE-Datei der Anwendung oder im Container. |
|
Gibt den Schriftgrad in Zeichenoberflächeneinheiten an (der Standardwert ist 0,96 Zoll). |
|
Gibt Flags für Fett- und Kursivdruck an. |
|
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.
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>