none
DrawString问题 RRS feed

  • 问题

  • vb.net里面我用DrawString在窗体上写出了两个字符,不过字符的字号越大离窗体左上角的坐标越来越远,我设置的时候DrawString的开始坐标为窗体的左上角(0,0)位置。代码如下:

    Public Class Form1
    
        Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
            Dim height As Single
            Dim font As New Font("宋体", 100)
            Dim stringFormat As SizeF = e.Graphics.MeasureString("M", font)
            height = stringFormat.Height
            e.Graphics.DrawString("M", font, Brushes.Black, 0.0F, 0.0F)
            e.Graphics.DrawString("M", font, Brushes.Black, 0.0F, height)
        End Sub
    End Class
    

     

    能不能把字符的位置调到左上角位置,当然字体大小可能会变化,字符也会变化。就是图上所示,上面的M的左上角在(0,0)位置,下面的M的左上角在(0,上面M下面位置)这个位置上。。不能用e.Graphics .FillPath ,这个我是过了如果宽高调的很小的时候自负的有些部分显示不出来。。谢谢。。。。


    muradil
    2011年10月20日 15:32

答案

  • Hi,

    这个是跟字体本身相关的,你的程序无法更改这一属性。

    不过你可以试试这个替代方案:

    e.Graphics.DrawString("MM", font, Brushes.Black, -20, -17)

    将起始点设成负值,至于要负多少,你可以根据需要自行调整.

    Best regards,


    Mike Feng [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年10月24日 3:17
    版主