Textwidth到TextRenderer.MeasureText

时间:2013-12-17 11:13:16

标签: c# vb6

我在VB6中有一个项目需要转换为C#,这个项目使用TextWidth方法,我用C#中的TextRenderer.MeasureText方法替换它,但是对于相同的字符串我得到了不同的结果,即使在我之后也是如此将像素转换为缇,有没有人知道如何解决这个问题? 我在VB6中的代码:

    Private Sub Form_Load()
      MsgBox Me.TextWidth("XX")
    End Sub

输出:210

我在C#中的代码:

  public int ConvertPixelsToTwips(Graphics source, int pixel)
    {

        return (int)((double)pixel / ((1.0 / 1440.0) * source.DpiX));   
    }


    private void Form1_Load(object sender, EventArgs e)
    {


        int pixel = TextRenderer.MeasureText("XX",this.Font).Width;
        int twips;
        Graphics g = CreateGraphics();
        twips = ConvertPixelsToTwips(g, pixel);
        MessageBox.Show("in twips: " + Convert.ToString(twips) + " in pixel: " + pixel);

    }

输出:以缇为单位:315像素:21

0 个答案:

没有答案