2

テキストブロック コントロール (決定された高さと幅) をキャンバスに追加しようとしています。フォント ファイル (.tff) で定義された行間隔に従って、そのテキスト ブロックの行の高さプロパティを設定したいと考えています。フォント ファイルを読み込んだ後、そのフォントのプロパティを持つ Typeface を使用します。行の高さが大きすぎる理由と、行の高さによってすべての行がテキストブロックに収まるように、各フォントとサイズの係数を計算する方法を誰かに説明してもらえますか? デフォルトの行の高さは、フォント ファイルの行間隔の真の値を表していないと思います。

item が私のオブジェクトであるコードは次のとおりです。

    TextBlock tb = new TextBlock();
    tb.Width = item.SizePX.Width;
    tb.Height = item.SizePX.Height;
    tb.Foreground = color;
    tb.TextAlignment = item.TextFormat.TextHAlignment;
    tb.FontSize = item.TextFormat.FontSize;
    tb.FontFamily = typeFace.FontFamily;
    tb.FontWeight = typeFace.Weight;
    tb.FontStretch = typeFace.Stretch;
    tb.FontStyle = typeFace.Style;
    tb.TextDecorations = decCol;
    tb.MaxWidth = item.SizePX.Width;
    tb.TextWrapping = TextWrapping.Wrap;
    tb.LineHeight = typeFace.FontFamily.LineSpacing * item.TextFormat.FontSize;

    tb.LineStackingStrategy = LineStackingStrategy.BlockLineHeight;

オブジェクトitem.TextFormat.FontSizeで定義されているフォントのピクセル単位のサイズです。

それから私は試しましたtypeFace.FontFamily.Baseline

tb.LineHeight = ypeFace.FontFamily.Baseline * item.TextFormat.FontSize;

まだ機能していません...この問題について誰か助けてもらえますか?

4

1 に答える 1

0

の値を設定すると、必要な行の高さの計算モードdouble.NaNが使用autoされます。

于 2016-05-09T13:46:10.363 に答える