问题描述
这段代码的功能是在gdi绘制文字时将文字通过m.Scale()方式变宽,变高,并且加间距功能问题,但现在的问题是一旦变换m.Scale()里的参数值,坐标会跟着变,错位,TextRectangle为原始的起点坐标及宽高度,文字是在这个区域内绘制,请大神帮忙,if(!string.IsNullOrEmpty(TextValue))//判断字符串是否为空{char[]fs=TextValue.ToCharArray();SizeFsize=g.MeasureString(fs[0].ToString(),TextFont,int.MaxValue);PointF[]positions=newPointF[TextValue.Length];for(inti=0;i<TextValue.Length;i++){if(i==0){positions[i]=newPointF(TextRectangle.X+i*size.Width,TextRectangle.Y);}else{positions[i]=newPointF(TextRectangle.X+i*(size.Width+JianJu),TextRectangle.Y);}Matrixm=newMatrix();m.Scale(KuanDu,GaoDu,MatrixOrder.Prepend);g.Transform=m;g.DrawString(fs[i].ToString(),TextFont,sb,positions[i]);g.ResetTransform();}}
m.Scale(1,1,MatrixOrder.Prepend);传1,1的情况m.Scale(1,1,MatrixOrder.Prepend);传2,1的情况此时出现坐标变位了
解决方案
本帖最后由 kaitiankeji 于 2014-07-07 11:46:55 编辑
解决方案二:
试试把文字绘制到另外个Rectangle上,然后把图片在绘制到画布上