文字列の長さをピクセル単位に変換するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/451903

  •  19-08-2019
  •  | 
  •  

質問

次のような文字列があります:

string s = "This is my string";

Telerikレポートを作成していますが、文字列の幅であるtextboxを定義する必要があります。ただし、サイズプロパティはUnit(Pixel、Point、Inchなど)に設定する必要があります。文字列の長さをピクセルなどに変換して、幅を設定するにはどうすればよいですか?

編集:グラフィックオブジェクトへの参照を取得しようとしましたが、これはTelerik.Reporting.Reportを継承するクラスで実行されます。

役に立ちましたか?

解決

コントロールまたはフォームを使用せずに:

using (System.Drawing.Graphics graphics = System.Drawing.Graphics.FromImage(new Bitmap(1, 1)))
{
    SizeF size = graphics.MeasureString("Hello there", new Font("Segoe UI", 11, FontStyle.Regular, GraphicsUnit.Point));
}

またはVB.Netで:

Using graphics As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(New Bitmap(1, 1))
    Dim size As SizeF = graphics.MeasureString("Hello there", New Font("Segoe UI", 11, FontStyle.Regular, GraphicsUnit.Point))
End Using

他のヒント

Size textSize = TextRenderer.MeasureText("How long am I?", font);

この場合、通常は汚いが簡単な方法を使用します:

  • 目に見えないLabelを追加し、そのAutoSizeプロパティがtrue-汚い仕事-であること。
  • 特定の文字列に対してWidthを使用する場合は、Label.Textに設定します。
  • <=>の<=>は、正しい値を提供します。

フォントにも依存します。文字列の長さが十分ではありません。

MeasureString()メソッドを使用して、グラフィックスオブジェクトのインスタンスを作成できます。ただし、フォント名、フォントサイズ、その他の情報を渡す必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top