C# DrawString 问题

背景:

随意生成字符串,然后把字符串保存成图片,要求能自动换行,可以设置字符间距,行间距,并获取每一行的字符串内容。

尝试使用如下两种方式:

1. 逐一写入字符的方式,代码如下,可以实现设置不同的字符间距和行间距,实现自定义换行,但因为是字符级别的,生成效果与实际中看到的字符串不太一样   

char[] ch = strRandstring.ToCharArray();
PointF pf = new Point(10, 10);
SizeF charSize;
foreach (char c in ch)
  {                                        
     charSize = graAry[i].MeasureString(c.ToString(), fFontType);                               graAry[i].DrawString(c.ToString(), fFontType, Brushes.Black, pf);
     pf.X += (charSize.Width - 5);  
     if (pf.X > 2000)
         {
             pf.X = 10;
             pf.Y += (charSize.Height + 10); 
          }
  }

                 

2. 用rectangle 绑定字符串,可以实现自动换行,但还没有找到设置行间距的方法,求大神赐教!!1

 StringFormat sf = new StringFormat();

                sf.Alignment = StringAlignment.Center;

                sf.LineAlignment = StringAlignment.Center;

 graAry[i].DrawString(strRandstring, fFontType, Brushes.Black, new Rectangle() { X=20,Y = 20, Width = 2000, Height = 1000}, sf);

 

你可能感兴趣的:(C#)