私はこのような文字列を持っています:
string s = "This is my string";
Telerikレポートを作成していて、文字列の幅であるtextbox
を定義する必要があります。ただし、サイズプロパティは単位(ピクセル、ポイント、インチなど)に設定する必要があります。文字列の長さをたとえばピクセルに変換して幅を設定するにはどうすればよいですか?
編集:グラフィックスオブジェクトへの参照を取得しようとしましたが、これは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
を追加します-_dirty work-。Width
を使用する場合は、Label.Text
に設定します。Width
のLabel
は正しい値を教えてくれます。MeasureString()
メソッドを使用して、グラフィックスオブジェクトのインスタンスを作成できます。ただし、フォント名、フォントサイズ、その他の情報を渡す必要があります。
フォントにも依存します。文字列の長さが十分ではありません。