Wie kann ich eine String-Länge auf eine Pixeleinheit umwandeln?
-
19-08-2019 - |
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
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 seineAutoSize
Eigenschaft isttrue
- schmutzige Arbeit -. - Wenn ich die
Width
für eine bestimmte Zeichenfolge haben will, habe ich es auf denLabel.Text
. - Die
Width
desLabel
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.