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);

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值