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.
Bildschirmanzeige von Dokumenten mit festem Format
Druckszenarios
Extensible Application Markup Language (XAML) als Gerätedruckersprache.
Microsoft XPS-Dokument-Writer.
Ältere Druckertreiber geben Win32-Anwendungen in einem festen Format aus.
Druckerspoolformat
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.
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
.NET Desktop feedback