TextFormatter クラス

定義

カスタム テキスト レイアウト クライアントを使用して、テキストの書式設定およびテキスト行の改行のサービスを提供します。

public ref class TextFormatter abstract : IDisposable
public abstract class TextFormatter : IDisposable
type TextFormatter = class
    interface IDisposable
Public MustInherit Class TextFormatter
Implements IDisposable
継承
TextFormatter
実装

次の例は、 オブジェクトを TextFormatter 使用して、描画オブジェクトとして表示できる書式設定されたテキスト行を生成する方法を示しています。

// Create a TextFormatter object.
TextFormatter formatter = TextFormatter.Create();

// Create common paragraph property settings.
CustomTextParagraphProperties customTextParagraphProperties
    = new CustomTextParagraphProperties();

// Format each line of text from the text store and draw it.
while (textStorePosition < customTextSource.Text.Length)
{
    // Create a textline from the text store using the TextFormatter object.
    using (TextLine myTextLine = formatter.FormatLine(
        customTextSource,
        textStorePosition,
        96 * 6,
        customTextParagraphProperties,
        null))
    {
        // Draw the formatted text into the drawing context.
        myTextLine.Draw(drawingContext, linePosition, InvertAxes.None);

        // Update the index position in the text store.
        textStorePosition += myTextLine.Length;

        // Update the line position coordinate for the displayed line.
        linePosition.Y += myTextLine.Height;
    }
}
' Create a TextFormatter object.
Dim formatter As TextFormatter = TextFormatter.Create()

' Create common paragraph property settings.
Dim customTextParagraphProperties As New CustomTextParagraphProperties()

' Format each line of text from the text store and draw it.
Do While textStorePosition < customTextSource.Text.Length
    ' Create a textline from the text store using the TextFormatter object.
    Using myTextLine As TextLine = formatter.FormatLine(customTextSource, textStorePosition, 96 * 6, customTextParagraphProperties, Nothing)
        ' Draw the formatted text into the drawing context.
        myTextLine.Draw(drawingContext, linePosition, InvertAxes.None)

        ' Update the index position in the text store.
        textStorePosition += myTextLine.Length

        ' Update the line position coordinate for the displayed line.
        linePosition.Y += myTextLine.Height
    End Using
Loop

注釈

TextFormatter は、テキストの書式設定と改行のためのサービスを提供する WPF テキスト エンジンです。 TextFormatter は、さまざまなテキスト文字形式と段落スタイルを処理でき、国際テキスト レイアウトのサポートが含まれています。

従来のテキスト API とは異なり、TextFormatter では、一連のコールバック メソッドにより、テキスト レイアウト クライアントとの対話が行われます。 クライアントでは、TextSource クラスの実装で、これらのメソッドを提供する必要があります。 次の図は、テキスト フォーマッタ クライアントとテキスト レイアウト クライアントの相互作用を示しています。

テキスト レイアウト クライアントの図と TextFormatter テキスト
テキスト レイアウト クライアントと TextFormatter オブジェクト間の相互作用

テキスト書式設定サービス

TextFormatter では、OpenType 文字体裁などのテキスト機能と、テキスト実行、行、段落レベルの機能のサポートが提供されます。

次の表は、テキスト機能でサポートされている主要な TextFormatter サービスの一覧です。

機能 説明
背景ブラシ Brush背景色に使用される 。 BackgroundBrush プロパティをご覧ください。
ベースラインの配置 線のベースライン距離を決定します。 BaselineAlignment プロパティをご覧ください。
フォント リンク 複合フォントを使用したフォント リンクを提供します。
前景ブラシ Brush前景色に使用される 。 ForegroundBrush プロパティをご覧ください。
OpenType コンテキスト代替や標準合字などの高度な OpenType 文字体裁機能。 クラスのプロパティを TextRunTypographyProperties 参照してください。
書体 書体、および太さ、スタイル、ストレッチを決定します。 Typeface プロパティをご覧ください。
テキストの装飾 下線や取り消し線などのオブジェクトのサポート TextDecoration を提供します。 TextDecorations プロパティをご覧ください。
テキストの文字飾り オブジェクトのサポートを TextEffect 提供します。 TextEffects プロパティをご覧ください。

次の表は、段落レベルの機能でサポートされている主要な TextFormatter サービスの一覧です。

機能 説明
フローの方向 段落のフロー方向 (左から右、または右から左)。 FlowDirection プロパティをご覧ください。
行のインデント 段落内の各行のインデント。 Indent プロパティをご覧ください。
マーカー 段落の最初の行のマーカー特性。 TextMarkerProperties プロパティをご覧ください。
段落のインデント 段落の最初の行のインデント。 ParagraphIndent プロパティをご覧ください。
タブ タブ配置とタブ リーダーのサポートが含まれています。
段落の最小幅と最大幅を決定します。 メソッドを FormatMinMaxParagraphWidth 参照してください。
右端で折り返す フロー エッジに到達したときにテキストがどのように折り返されるかを決定します。 TextWrapping プロパティをご覧ください。

次の表は、ラインレベル機能でサポートされている主要な TextFormatter サービスの一覧です。

機能 説明
Alignment テキストの配置 - 左、右、中央揃え、または両端揃え。 TextAlignment プロパティをご覧ください。
[行間] 線の高さ。 Height プロパティをご覧ください。
折りたたむ線 折りたたむ行のサポート。 メソッドを Collapse 参照してください。
ブラックボックス測定 デバイス フォントで文字をレイアウトするために使用されるメトリックを表します。 詳細については、CharacterMetrics クラスのトピックを参照してください。
キャレットのサポート キャレット ナビゲーションと編集のサポート。 TextLineや などのGetNextCaretCharacterHit文字ヒット プロパティをGetPreviousCaretCharacterHit確認します。

次の表は、テキスト実行レベル機能でサポートされている主要な TextFormatter サービスの一覧です。

機能 説明
非表示の実行 表示されない文字の範囲。 オブジェクトを TextHidden 参照してください。
あり 改行と段落区切り。

コンストラクター

TextFormatter()

TextFormatter クラスの新しいインスタンスを初期化します。

メソッド

Create()

TextFormatter クラスの新しいインスタンスを作成します。 これは静的メソッドです。

Create(TextFormattingMode)

指定した書式設定モードを使用して、TextFormatter クラスの新しいインスタンスを作成します。 これは静的メソッドです。

Dispose()

TextFormatter オブジェクトによって使用されているマネージド リソースおよびアンマネージド リソースをすべて解放します。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
FormatLine(TextSource, Int32, Double, TextParagraphProperties, TextLineBreak, TextRunCache)

ドキュメント コンテンツの書式設定および表示に使用される TextLine を作成します。

FormatLine(TextSource, Int32, Double, TextParagraphProperties, TextLineBreak)

ドキュメント コンテンツの書式設定および表示に使用される TextLine を作成します。

FormatMinMaxParagraphWidth(TextSource, Int32, TextParagraphProperties, TextRunCache)

指定したテキスト コンテンツをすべて格納できる最小および最大の段落幅を表す値を返します。

FormatMinMaxParagraphWidth(TextSource, Int32, TextParagraphProperties)

指定したテキスト コンテンツをすべて格納できる最小および最大の段落幅を表す値を返します。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象

こちらもご覧ください