Dela via


Introduktion till GlyphRun-objektet och Glyphs-elementet

Det här avsnittet beskriver GlyphRun objektet och elementet Glyphs .

Introduktion till GlyphRun

Windows Presentation Foundation (WPF) ger avancerat textstöd, inklusive markering på glyph-nivå med direkt åtkomst till Glyphs för kunder som vill fånga upp och bevara text efter formatering. Dessa funktioner ger kritiskt stöd för de olika kraven för textrendering i vart och ett av följande scenarier.

  1. Skärmvisning av dokument med fast format.

  2. Utskriftsscenarier.

    • XAML (Extensible Application Markup Language) som ett enhetsskrivarespråk.

    • Microsoft XPS-dokumentskrivare.

    • Tidigare skrivardrivrutiner, utdata från Win32-program till fast format.

    • Utskriftspoolformat.

  3. Dokumentrepresentation med fast format, inklusive klienter för tidigare versioner av Windows och andra databehandlingsenheter.

Anmärkning

Glyphs och GlyphRun är utformade för scenarier med fast format för dokumentpresentation och utskrift. WPF innehåller flera element för scenarier med allmän layout och användargränssnitt(UI), till exempel Label och TextBlock. Mer information om layout- och användargränssnittsscenarier finns i Typografi i WPF.

GlyphRun-objektet

Objektet GlyphRun representerar en sekvens med glyfer från ett enda ansikte med ett enda teckensnitt i en enda storlek och med ett enda återgivningsformat.

GlyphRun innehåller både teckensnittsinformation som glyph Indices - och enskilda glyph-positioner. Den innehåller också de ursprungliga Unicode-kodpunkterna som körningen genererades från, information om mappning av buffertförskjutningar från tecken till glyf, samt flaggor för varje tecken och glyf.

GlyphRun har motsvarande högnivå FrameworkElement, Glyphs. Glyphs kan användas i elementträdet och i XAML-markering för att representera GlyphRun utdata.

Glyphs-elementet

Elementet Glyphs representerar utdata från en GlyphRun i XAML. Följande markeringssyntax används för att beskriva elementet Glyphs .

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

Följande egenskapsdefinitioner motsvarar de första fyra attributen i exempelmarkeringen.

Fastighet Beskrivning
FontUri Anger en resursidentifierare: filnamn, webbuniform resursidentifierare (URI) eller resursreferens i programmet .exe eller containern.
FontRenderingEmSize Anger teckenstorleken i ritytanheter (standardvärdet är 0,96 tum).
StyleSimulations Anger flaggor för fetstil och kursiv stil.
BidiLevel Anger dubbelriktad layoutnivå. Jämnt numrerade och nollvärden innebär vänster-till-höger-layout. udda talvärden innebär layout från höger till vänster.

Indexegenskap

Egenskapen Indices är en sträng med glyfspecifikationer. Om en sekvens med glyfer bildar ett enda kluster föregås specifikationen av det första glyfen i klustret av en specifikation av hur många glyfer och hur många kodpunkter som kombineras för att bilda klustret. Egenskapen Indices samlar in följande egenskaper i en sträng.

  • Glyph-index

  • Glyfförskjutningsbredder

  • Kombinera vektorer för glyph-bifogade filer

  • Klustermappning från kodpunkter till glyfer

  • Glyph-flaggor

Varje glyphspecifikation har följande formulär.

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

Glyph-mått

Varje glyf definierar mått som anger hur det överensstämmer med andra Glyphs. Följande bild definierar de olika typografiska egenskaperna för två olika tecken.

Diagraf av glyphmätningar

Glyphs-notation

I följande kodexempel visas hur du använder olika egenskaper för elementet Glyphs i 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>

Se även