How can I convert a string length to a pixel unit?

前端 未结 5 505
时光取名叫无心
时光取名叫无心 2020-11-30 04:17

I have a string like this:

string s = \"This is my string\";

I am creating a Telerik report and I need to define a textbox tha

相关标签:
5条回答
  • 2020-11-30 04:31

    Without using of a control or 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));
    }
    

    Or 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
    
    0 讨论(0)
  • 2020-11-30 04:31

    You can create an instance of a graphics object an use the MeasureString() method. But you will need to pass it the font name, font size, and other info.

    0 讨论(0)
  • 2020-11-30 04:39

    Depends on the font, too. String length isn't sufficient.

    0 讨论(0)
  • 2020-11-30 04:47

    In this case, I usually use a dirty, but simple way:

    • I add an invisible Label that its AutoSize property is true -dirty work-.
    • When I want to have the Width for a specific string, I set it to the Label.Text.
    • The Width of the Label will give me the correct value.
    0 讨论(0)
  • 2020-11-30 04:48
    Size textSize = TextRenderer.MeasureText("How long am I?", font);
    
    0 讨论(0)
提交回复
热议问题