GlyphRun オブジェクトと Glyphs 要素の概要
このトピックでは、GlyphRun オブジェクトと Glyphs 要素について説明します。
GlyphRun の概要
Windows Presentation Foundation (WPF) は、グリフ レベルのマークアップを含む高度なテキスト サポートを提供し、書式設定後にテキストをインターセプトして保持するユーザー向けに、Glyphs に直接アクセスできます。 これらの機能は、次の各シナリオのさまざまなテキスト レンダリング要件に対して重要なサポートを提供します。
固定形式ドキュメントの画面表示。
印刷シナリオ。
デバイス プリンター言語としての拡張可能なアプリケーション マークアップ言語 (XAML)。
Microsoft XPS ドキュメント ライター。
以前のプリンタードライバーは、Win32アプリケーションから固定形式に出力されました。
印刷スプール形式。
以前のバージョンの Windows やその他のコンピューティング デバイスのクライアントを含む、ドキュメントの固定形式表現。
手記
Glyphs と GlyphRun は、固定形式のドキュメントのプレゼンテーションと印刷のシナリオ向けに設計されています。 WPF には、Label や TextBlockなど、一般的なレイアウトとユーザー インターフェイス (UI) シナリオ用のいくつかの要素が用意されています。 レイアウトと UI のシナリオの詳細については、「WPFの
GlyphRun オブジェクト
GlyphRun オブジェクトは、1 つのフォントの単一の面から 1 つのサイズで、1 つのレンダリング スタイルを持つグリフのシーケンスを表します。
GlyphRun には、グリフ Indices や個々のグリフ位置などのフォントの詳細の両方が含まれます。 また、実行元の Unicode コード ポイント、文字からグリフへのバッファー オフセット マッピング情報、文字ごとおよびグリフごとのフラグも含まれます。
GlyphRun には、対応する高レベルの FrameworkElement、Glyphsがあります。 Glyphs は、要素ツリーと XAML マークアップで使用して、GlyphRun 出力を表すことができます。
Glyphs 要素
Glyphs 要素は、XAML の GlyphRun の出力を表します。 次のマークアップ構文は、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>
次のプロパティ定義は、サンプル マークアップの最初の 4 つの属性に対応しています。
財産 | 説明 |
---|---|
FontUri | リソース識別子 (ファイル名、Web Uniform Resource Identifier (URI)、またはアプリケーション .exe またはコンテナー内のリソース参照) を指定します。 |
FontRenderingEmSize | 描画サーフェイス単位でフォント サイズを指定します (既定値は .96 インチ)。 |
StyleSimulations | 太字および斜体のスタイルのフラグを指定します。 |
BidiLevel | 双方向レイアウト レベルを指定します。 偶数とゼロの値は、左から右のレイアウトを意味します。奇数の値は、右から左のレイアウトを意味します。 |
Indices プロパティ
Indices プロパティはグリフ仕様の文字列です。 グリフのシーケンスが 1 つのクラスターを形成する場合、クラスター内の最初のグリフの指定の前に、グリフの数と、クラスターを形成するために結合されるコード ポイントの数の指定が付けられます。 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="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>
関連項目
- WPF での
文字体裁 - WPF のドキュメント
- テキスト
.NET Desktop feedback