web-dev-qa-db-ja.com

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

私はこのような文字列を持っています:

string s = "This is my string";

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

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

26
ScottG

コントロールまたはフォームを使用しない場合:

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
60
Tom Anderson
Size textSize = TextRenderer.MeasureText("How long am I?", font);
20
Wachburn

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

  • LabelプロパティがAutoSizeである非表示のtrueを追加します-_dirty work-。
  • 特定の文字列にWidthを使用する場合は、Label.Textに設定します。
  • WidthLabelは正しい値を教えてくれます。
12
shA.t

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

4
Mitchel Sellers

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

4
duffymo