GlyphRun Nesnesi ve Karakter Öğesine Giriş

Bu konu, GlyphRun nesnesini ve öğesini açıklar Glyphs .

GlyphRun 'a giriş

Windows Presentation Foundation (WPF), Glyphs biçimlendirmeden sonra metni kesme ve kalıcı hale getirmek isteyen müşterilere doğrudan erişim ile glif düzeyinde biçimlendirme dahil gelişmiş metin desteği sağlar. Bu özellikler, aşağıdaki senaryolardan her birinde farklı metin işleme gereksinimleri için kritik destek sağlar.

  1. Sabit biçimli belgelerin ekran görüntüsü.

  2. Yazdırma senaryoları.

    • Cihaz yazıcı dili olarak Extensible Application Markup Language (XAML).

    • Microsoft XPS Belge Yazıcısı.

    • Önceki yazıcı sürücüleri, Win32 uygulamalarından sabit biçime çıkış.

    • Yazdırma kuyruğu biçimi.

  3. Windows ve diğer bilgi işlem cihazlarının önceki sürümleri için istemciler dahil olmak üzere sabit biçimli belge temsili.

Not

Glyphs ve GlyphRun sabit biçimli belge sunumu ve yazdırma senaryoları için tasarlanmıştır. Windows Presentation Foundation (WPF), ve gibi genel düzen ve kullanıcı arabirimi (uı) senaryoları için çeşitli öğeler Label sağlar TextBlock . Düzen ve Kullanıcı arabirimi senaryoları hakkında daha fazla bilgi için WPF 'de tipografi'e bakın.

GlyphRun nesnesi

Nesnesi tek bir GlyphRun yazı tipindeki tek bir yüzden ve tek bir işleme stiliyle bir karakter dizisini temsil eder.

GlyphRun glif ve ayrı karakter konumları gibi yazı tipi ayrıntılarını içerir Indices . Ayrıca, çalıştırmanın oluşturulduğu orijinal Unicode kod noktalarını, karakter-karakter arabelleği fark eşleme bilgilerini ve karakter başına ve karakter başına bayrakları da içerir.

GlyphRun , karşılık gelen bir üst düzeydir FrameworkElementGlyphs . Glyphs öğe ağacında ve XAML biçimlendirmesinde çıktıyı temsil etmek için kullanılabilir GlyphRun .

Glyphs öğesi

GlyphsÖğesı xaml içindeki çıktısını temsil eder GlyphRun . Aşağıdaki biçimlendirme sözdizimi, öğesini tanımlamakta kullanılır 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>

Aşağıdaki özellik tanımları, örnek biçimlendirmesinde ilk dört özniteliğe karşılık gelir.

Özellik Açıklama
FontUri Kaynak tanımlayıcısını belirtir: dosya adı, Web Tekdüzen Kaynak tanımlayıcısı (URI) veya uygulama .exe veya kapsayıcısında kaynak başvurusu.
FontRenderingEmSize Çizim yüzeyi birimlerinde yazı tipi boyutunu belirtir (varsayılan. 96 inç).
StyleSimulations Kalın ve Italik stiller için bayrakları belirtir.
BidiLevel Çift yönlü düzen düzeyini belirtir. Çift sayılı ve sıfır değerler soldan sağa düzeni göstermez; tek sayılı değerler sağdan sola düzeni göstermez.

Dizinler özelliği

IndicesÖzelliği, glif belirtimlerinin bir dizesidir. Bir karakter dizisinin tek bir küme olarak ayarlandığı yerlerde, kümedeki ilk glifin belirtimi, küme oluşturmak için kaç karakter ve kaç tane kod noktasının birleştirildiği hakkında bir belirtimdir. IndicesÖzelliği, aşağıdaki özellikleri bir dizede toplar.

  • Glif dizinleri

  • Glif öncelikli genişlikleri

  • Glif eki vektörlerini birleştirme

  • Kod noktalarından karakterlere karakter eşleme

  • Glif bayrakları

Her glif belirtiminin aşağıdaki biçimi vardır.

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

Glif ölçümleri

Her glif, nasıl hizalanacağını belirleyen ölçümleri tanımlar Glyphs . Aşağıdaki grafik iki farklı karakter karakterlerinin çeşitli tipografik kalitelerini tanımlar.

Diagraph of glyph measurements

Glif biçimlendirmesi

Aşağıdaki kod örneğinde, XAML 'de öğesinin çeşitli özelliklerinin nasıl kullanılacağı gösterilmektedir Glyphs .

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

Ayrıca bkz.