Frage

Ich habe eine Zeichenfolge wie folgt:

string s = "This is my string";

Ich schaffe einen Telerik Bericht und ich brauche eine textbox zu definieren, die die Breite meiner Zeichenfolge ist. Allerdings muss die Größe Eigenschaft gesetzt werden zu einer Einheit (Pixel, Punkt, Zoll, etc.). Wie kann ich in meine Stringlänge konvertieren, sagen wir ein Pixel, so kann ich die Breite eingestellt?

EDIT:. Ich habe versucht, einen Verweis auf die Grafik immer widersprechen, aber das ist in einer Klasse durchgeführt, die von Telerik.Reporting.Report erbt

War es hilfreich?

Lösung

Ohne Verwendung eines Steuer- oder Form:

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));
}

oder in 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

Andere Tipps

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

In diesem Fall verwende ich in die Regel eine schmutzige, aber einfache Art und Weise:

  • Ich füge eine unsichtbare Label, dass seine AutoSize Eigenschaft ist true - schmutzige Arbeit -.
  • Wenn ich die Width für eine bestimmte Zeichenfolge haben will, habe ich es auf den Label.Text.
  • Die Width des Label gibt mir den richtigen Wert.

Abhängig von der Schrift, auch. String-Länge ist nicht ausreichend.

Sie können eine Instanz einer Grafik erstellen Objekt einem Einsatz die MeasureString() Methode. Aber Sie müssen es die Schriftnamen zu übergeben, die Schriftgröße und andere Informationen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top