为了能显示旋转90度的label,先用DrawString把想显示的字符串画成图片然后再旋转。
这样做出来的控件在屏幕上看挺正常的 怎么用打印机打印出来就有很强的的颗粒感?好像分辨率不够的样子。
请高手帮忙解答,谢谢先!
Dim p As WinForm.Painter = e.Form.Controls("Painter")
Dim w As Integer = p.Width
Dim h As Integer = p.Height
Dim g As Graphics = p.Graphics '获取Graphics对象
Dim fnt As New Font("Arial",6)
Dim msg As String = "ABCDEFGHIJKLMN"
Dim sf As StringFormat = new StringFormat(StringFormat.GenericTypographic)
Dim size As SizeF = g.MeasureString(msg,fnt,1000,sf)
Dim sh =(h/2 - size.Height/2)
Dim sw =(w/2 - size.Width/2)
g.TranslateTransform(w/2, h/2)
g.RotateTransform(-90)
g.TranslateTransform(-w/2, -h/2)
g.DrawString(msg,fnt,Brushes.BLACK,sw,sh)
g.TranslateTransform(w/2, h/2)
g.RotateTransform(90)
p.Repaint()