Úvod do objektu GlyphRun a elementu Glyphs
Toto téma popisuje objekt GlyphRun a prvek Glyphs.
Úvod do GlyphRun
Windows Presentation Foundation (WPF) poskytuje pokročilou podporu textu, včetně možnosti označení na úrovni znaků s přímým přístupem k Glyphs, což je určeno pro zákazníky, kteří chtějí po formátování text zachytit a uchovat. Tyto funkce poskytují důležitou podporu pro různé požadavky na vykreslování textu v každém z následujících scénářů.
Zobrazení obrazovky dokumentů s pevným formátem
Scénáře tisku
Jazyk XAML (Extensible Application Markup Language) jako jazyk tiskárny zařízení
Microsoft XPS Document Writer.
Předchozí ovladače tiskárny, výstup z aplikací Win32 do pevného formátu.
Formát spouštěče tisku
Reprezentace dokumentů s pevným formátem, včetně klientů pro předchozí verze Windows a jiných výpočetních zařízení.
Poznámka
Glyphs a GlyphRun jsou navržené pro prezentace dokumentů s pevným formátem a scénáře tisku. WPF poskytuje několik prvků pro obecné scénáře rozložení a uživatelského rozhraní (UI), jako jsou Label a TextBlock. Další informace o rozložení a scénářích uživatelského rozhraní naleznete v tématu Typografie ve WPF.
Objekt GlyphRun
Objekt GlyphRun představuje posloupnost glyfů z jedné tváře jednoho písma v jedné velikosti a s jedním stylem vykreslování.
GlyphRun obsahuje podrobnosti písma, jako jsou Indices glyf i jednotlivé pozice glyfů. Obsahuje také původní kódové body Unicode, ze kterých bylo spuštění vygenerováno, informace o mapování posunu vyrovnávací paměti od znaku ke glyfu a příznaky pro jednotlivé znaky a glyfy.
GlyphRun má odpovídající vysokou úroveň FrameworkElement, Glyphs. Glyphs lze použít ve stromu elementů a v kódu XAML k reprezentaci GlyphRun výstupu.
Prvek Glyfy
Element Glyphs představuje výstup GlyphRun v jazyce XAML. Následující syntaxe značek slouží k popisu Glyphs elementu.
<!-- 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>
Následující definice vlastností odpovídají prvním čtyřem atributům v ukázkovém značení.
Vlastnost | Popis |
---|---|
FontUri | Určuje identifikátor prostředku: název souboru, identifikátor URI (Web Uniform Resource Identifier) nebo odkaz na prostředek v .exe nebo kontejneru aplikace. |
FontRenderingEmSize | Určuje velikost písma v jednotkách plochy výkresu (výchozí hodnota je 0,96 palců). |
StyleSimulations | Určuje příznaky pro styly tučného písma a kurzívy. |
BidiLevel | Určuje obousměrnou úroveň rozložení. Sudé a nulové hodnoty znamenají rozložení zleva doprava; liché hodnoty znamenají rozložení zprava doleva. |
Vlastnost Indexy
Vlastnost Indices je řetězec specifikací glyfů. Kde posloupnost glyfů tvoří jeden cluster, předchází specifikace prvního glyfu v clusteru specifikaci, kolik glyfů a kolik bodů kódu se zkombinuje pro vytvoření clusteru. Vlastnost Indices shromažďuje v jednom řetězci následující vlastnosti.
Indexy glyfů
Pokročilé šířky glyfů
Kombinování vektorů připojení glyfů
Mapování clusteru z bodů kódu na glyfy
Příznaky Glyph
Každá specifikace glyphu má následující tvar.
[GlyphIndex][,[Advance][,[uOffset][,[vOffset][,[Flags]]]]]
Metryka Glyfu
Každý glyph definuje metriky, které určují, jak je v souladu s ostatními Glyphs. Následující obrázek definuje různé typografické vlastnosti dvou různých znaků glyf.
Značení glyfů
Následující příklad kódu ukazuje, jak používat různé vlastnosti Glyphs element v XAML.
<!-- 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>
Viz také
.NET Desktop feedback