Úvod do objektu GlyphRun a elementu Glyph

Toto téma popisuje GlyphRun objekt a Glyphs prvek.

Úvod do GlyphRun

Windows Presentation Foundation (WPF) poskytuje pokročilou podporu textu včetně značek na úrovni glyph s přímým přístupem pro Glyphs zákazníky, kteří chtějí zachytit a zachovat text po formátování. 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ářů.

  1. Zobrazení obrazovky dokumentů s pevným formátem

  2. 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 zařazování tisku

  3. 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 Label jsou a TextBlock. Další informace o scénářích rozložení a uživatelského rozhraní najdete v typografii 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 jak podrobnosti písma, například glyf Indices , tak jednotlivé pozice glyfů. Obsahuje také původní body kódu Unicode, které spuštění bylo generováno z informací o mapování posunu vyrovnávací paměti znak-to-glyph, a příznaky pro jednotlivé znaky a znaky na glyf.

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.

The Glyphs Element

Element Glyphs představuje výstup jazyka GlyphRun XAML. K popisu elementu Glyphs se používá následující syntaxe značek.

<!-- 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ř atributům v ukázkové značek.

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 souboru .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 tučné styly a kurzívu.
BidiLevel Určuje obousměrnou úroveň rozložení. Sudé a nulové hodnoty znamenají rozložení zleva doprava; Liché číselné hodnoty znamenají rozložení zprava doleva.

Vlastnost Indexy

Vlastnost Indices je řetězec specifikace glyph. 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řílohy glyph

  • 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]]]]]

Metriky Glyph

Každý glyf 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.

Diagraph of glyph measurements

Glyfy – revize

Následující příklad kódu ukazuje, jak používat různé vlastnosti elementu Glyphs 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é