Delen via


Inleiding tot het GlyphRun-object en het Glyphs-element

In dit onderwerp worden het GlyphRun-object en het Glyphs-element beschreven.

Inleiding tot GlyphRun

Windows Presentation Foundation (WPF) biedt geavanceerde tekstondersteuning, waaronder markeringen op glyph-niveau met directe toegang tot Glyphs voor klanten die tekst willen onderscheppen en behouden na opmaak. Deze functies bieden essentiële ondersteuning voor de verschillende vereisten voor tekstweergave in elk van de volgende scenario's.

  1. Schermweergave van documenten met vaste indeling.

  2. Scenario's afdrukken.

    • Extensible Application Markup Language (XAML) als printertaal voor apparaten.

    • Microsoft XPS Document Writer.

    • Eerdere printerstuurprogramma's zorgden voor de uitvoer van Win32-toepassingen naar het vaste formaat.

    • Afdrukspool-indeling.

  3. Documentweergave met vaste indeling, waaronder clients voor eerdere versies van Windows en andere computerapparaten.

Opmerking

Glyphs en GlyphRun zijn ontworpen voor documentpresentaties en afdrukscenario's met vaste opmaak. WPF biedt verschillende elementen voor algemene indeling en gebruikersinterfacescenario's zoals Label en TextBlock. Zie de Typografie in WPF-voor meer informatie over indelings- en ui-scenario's.

Het GlyphRun-object

Het GlyphRun-object vertegenwoordigt een reeks glyphs van één gezicht van één lettertype op één grootte en met één weergavestijl.

GlyphRun bevat zowel tekendetails als glyph-Indices en afzonderlijke glyph-posities. Het bevat ook de oorspronkelijke Unicode-codepunten waaruit de uitvoering is gegenereerd, informatie over de offset mapping van teken naar glyph in de buffer, en vlaggen per teken en per glyph.

GlyphRun heeft een overeenkomend hoog niveau FrameworkElement, Glyphs. Glyphs kan worden gebruikt in de elementstructuur en in XAML-markering voor de voorstelling van GlyphRun-uitvoer.

Het element Glyphen

Het element Glyphs vertegenwoordigt de uitvoer van een GlyphRun in XAML. De volgende syntaxis voor markeringen wordt gebruikt om het Glyphs element te beschrijven.

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

De volgende eigenschapsdefinities komen overeen met de eerste vier kenmerken in de voorbeeldmarkeringen.

Vastgoed Beschrijving
FontUri Hiermee geeft u een resource-id: bestandsnaam, URI (Web Uniform Resource Identifier) of resourcereferentie in de toepassing .exe of container.
FontRenderingEmSize Hiermee specifieert u de lettergrootte in tekenoppervlakeenheden (standaard is 0,96 inch).
StyleSimulations Hiermee specificeert u opties voor vetgedrukte en cursieve stijlen.
BidiLevel Hiermee geeft u het indelingsniveau in twee richtingen op. Even genummerde en nulwaarden impliceren de indeling van links naar rechts; oneven waarden impliceren de indeling van rechts naar links.

Indices-eigenschap

De eigenschap Indices is een reeks glyph-specificaties. Wanneer een reeks glyphs één cluster vormt, wordt de specificatie van het eerste symbool in het cluster voorafgegaan door een specificatie van het aantal glyphs en hoeveel codepunten het cluster vormen. De eigenschap Indices verzamelt in één tekenreeks de volgende eigenschappen.

  • Glyph-indexen

  • Breedte van glyphvoorloop

  • Glyph-bijlagevectoren combineren

  • Clustertoewijzing van codepunten naar glyphs

  • Glyph-vlaggen

Elke glyph-specificatie heeft het volgende formulier.

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

Glyph-metrieken

Elke glyph definieert metrische gegevens die aangeven hoe deze wordt uitgelijnd met andere Glyphs. In de volgende afbeelding worden de verschillende typografische kwaliteiten van twee verschillende tekens gedefinieerd.

Diagraaf van glyph-metingen

Glyphs-opmaak

In het volgende codevoorbeeld ziet u hoe u verschillende eigenschappen van het element Glyphs in XAML gebruikt.

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

Zie ook