1. ホーム
  2. c#

[解決済み] WPFのTextBlockの幅を既知のフォントサイズと文字数で計算する方法は?

2023-06-12 19:09:46

質問

例えば、私が TextBlock というテキストで というテキストがあります。 そして フォントサイズ10.0 .

どのようにすれば適切な TextBlock ?

どのように解決するのですか?

この場合 FormattedText クラスを使用します。

コードにヘルパー関数を作ってみました。

private Size MeasureString(string candidate)
{
    var formattedText = new FormattedText(
        candidate,
        CultureInfo.CurrentCulture,
        FlowDirection.LeftToRight,
        new Typeface(this.textBlock.FontFamily, this.textBlock.FontStyle, this.textBlock.FontWeight, this.textBlock.FontStretch),
        this.textBlock.FontSize,
        Brushes.Black,
        new NumberSubstitution(),
        1);

    return new Size(formattedText.Width, formattedText.Height);
}

WPFのレイアウトで使用できるデバイス非依存のピクセルを返します。