J'ai une corde comme ceci:
string s = "This is my string";
Je crée un rapport Telerik et j'ai besoin de définir un textbox
c'est la largeur de ma chaîne. Cependant, la propriété de taille doit être réglée sur une unité (pixel, point, pouce, etc.). Comment puis-je convertir ma longueur de chaîne en, disons un pixel afin que je puisse régler la largeur?
Edit : J'ai essayé d'obtenir une référence à l'objet graphique, mais cela se fait dans une classe qui hérite de Telerik.Reporting.Report
.
Sans utiliser d'un contrôle ou d'une forme:
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));
}
Ou dans 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);
Dans ce cas, j'utilise habituellement une manière sale, mais simple:
Label
que sa propriété AutoSize
est true
-Dirty Work -.Width
pour une chaîne spécifique, je l'ai défini sur le Label.Text
.Width
du Label
me donnera la valeur correcte.Vous pouvez créer une instance d'un objet graphique à utiliser la méthode MeasureString()
. Mais vous devrez transmettre le nom de police, la taille de la police et d'autres informations.
Dépend de la police aussi. La longueur de la chaîne n'est pas suffisante.