您的位置:首页 > 编程语言 > VB

vb.net 计算文字的宽度

2009-07-21 16:27 260 查看
Code
'被表示的文字列
Dim s As String = "我是全哥,欢迎!"

'PictureBox1的Graphics对象取得
Dim g As Graphics = PictureBox1.CreateGraphics()

'字体对象作成
Dim fnt As New Font("宋体", 20)
'StringFormat对象作成
Dim sf As New StringFormat

'描绘文字列
g.DrawString(s, fnt, Brushes.Black, 0, 0, sf)

'设定宽度为1000像素,文字列描绘时计算大小
Dim stringSize As SizeF = g.MeasureString(s, fnt, 1000, sf)
'取得的文字列的大小使用矩形描绘
g.DrawRectangle(Pens.Red, 0, 0, stringSize.Width, stringSize.Height)

'测量"BINGNING"和"NET"的大小
'测量指定文字列的范围
Dim characterRanges As CharacterRange() = _
{New CharacterRange(0, 4), New CharacterRange(5, 3)}
sf.SetMeasurableCharacterRanges(characterRanges)

'指定描绘文字列的矩形
Dim layoutRect As New RectangleF(0, 0, 500, 100)
'取得Region数组
Dim stringRegions As Region() = _
g.MeasureCharacterRanges(s, fnt, layoutRect, sf)

'描绘取得文字列大小的矩形
Dim rect1 As RectangleF = stringRegions(0).GetBounds(g)
g.DrawRectangle(Pens.Yellow, Rectangle.Round(rect1))
Dim rect2 As RectangleF = stringRegions(1).GetBounds(g)
g.DrawRectangle(Pens.Blue, Rectangle.Round(rect2))

'资源释放
fnt.Dispose()
g.Dispose()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: