GlyphRun オブジェクトと Glyphs 要素の概要

更新 : 2007 年 11 月

ここでは、GlyphRun オブジェクトと Glyphs 要素について説明します。

このトピックには次のセクションが含まれています。

  • GlyphRun の概要
  • GlyphRun オブジェクト
  • Glyphs 要素
  • グリフのメトリック
  • グリフのマークアップ
  • 関連トピック

GlyphRun の概要

Windows Presentation Foundation (WPF) は、ユーザーが書式設定後にテキストを途中受信および永続化できるように、Glyphs に直接アクセスできるグリフ レベルのマークアップを含む高度なテキストをサポートします。これらの機能によって、次の各シナリオにおけるさまざまなテキスト レンダリングの要件が満たされます。

  1. 固定形式ドキュメントの画面表示。

  2. 印刷シナリオ。

    • デバイス プリンタ言語としての Extensible Application Markup Language (XAML)。

    • Microsoft XPS Document Writer.

    • Win32 アプリケーションから固定形式に出力される以前のプリンタ ドライバ。

    • 印刷スプール形式。

  3. 前のバージョンの Windows のクライアントやその他のコンピューティング デバイスを含む固定形式のドキュメントの表示。

ms748985.alert_note(ja-jp,VS.90).gifメモ :

Glyphs および GlyphRun は、固定形式のドキュメントの表示および印刷シナリオのために設計されています。Windows Presentation Foundation (WPF) には、LabelTextBlock などの一般的なレイアウトおよびユーザー インターフェイス (UI) シナリオのための要素がいくつか用意されています。レイアウトと UI シナリオの詳細については、「Windows Presentation Foundation の文字体裁」を参照してください。

GlyphRun オブジェクト

GlyphRun オブジェクトは、同じ描画スタイルが設定され、サイズ、フォント、およびフォントの書体が同じである一連のグリフを表します。

GlyphRun は、グリフの Indices や個々のグリフの位置などの両方のフォントの詳細を格納します。さらに、グリフ実行が生成された元の Unicode コード ポイント、文字からグリフへのバッファ オフセット マッピングの情報、および文字別とグリフ別のフラグが格納されています。

GlyphRun には、対応する高レベルの FrameworkElement である Glyphs があります。Glyphs は、GlyphRun 出力を表すために要素ツリーおよび XAML マークアップで使用できます。

Glyphs 要素

Glyphs 要素は、XAML の GlyphRun の出力を表します。Glyphs 要素を記述するには、次のマークアップ構文を使用します。

<!-- The example shows how to use a Glyphs object. -->
<Page
  xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="https://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>

次のプロパティ定義は、サンプル マークアップの最初の 4 つの属性に対応します。

プロパティ

説明

FontUri

リソース識別子 (ファイル名、Web 統一リソース識別子 (URI)、またはアプリケーション .exe かコンテナ内のリソース参照) を指定します。

FontRenderingEmSize

描画サーフェイスの単位でフォント サイズを指定します (既定値は .96 インチです)。

StyleSimulations

太字と斜体のスタイルのフラグを指定します。

BidiLevel

双方向のレイアウト レベルを指定します。偶数値および 0 の値は左から右へのレイアウトを意味します。奇数値は右から左へのレイアウトを意味します。

Indices プロパティ

Indices プロパティは、グリフ指定の文字列です。一連のグリフが単一のクラスタを形成する場合、クラスタ内の最初のグリフの指定の前に、クラスタを形成するために結合されるグリフの数およびコード ポイントの数が指定されます。Indices プロパティは、次のプロパティを 1 つの文字列に収集します。

  • グリフ インデックス

  • グリフのアドバンス幅

  • 結合グリフの結合ベクタ

  • コード ポイントからグリフへのクラスタのマッピング

  • グリフ フラグ

各グリフ指定の形式は次のとおりです。

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

グリフのメトリック

各グリフは、他の Glyphs および位置をどのように揃えるかを指定するメトリックを定義します。次のグラフィックは、2 種類のグリフ文字の文字体裁のさまざまな特性を明確に示しています。

グリフ単位のダイアグラム

グリフのマークアップ

XAML で Glyphs 要素のさまざまなプロパティを使用する方法を次のコード例に示します。

<!-- The example shows how to use different property settings of Glyphs objects. -->
<Canvas
  xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="https://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>

参照

概念

Windows Presentation Foundation の文字体裁

Windows Presentation Foundation のドキュメント

パフォーマンスの最適化 : テキスト