如何实现整词换行?
我通过GDI+实现了一个文本显示的东西,因为有一些特殊需求所以必须自己写,实现换行的代码如下:
private void Form2_Paint(object sender, PaintEventArgs e)
{
String str = "部分央企投资违规<通知>强调央企在进行非主业投资时,包括非主业性质的房地产、金,融、证券和保险业投资等,须及时向国资委报告(审核、备案)并报送有关材料和情况\n 该《通知》的签发日期是6月27日。此前的6月18日,中国银监会宣布对被中国核工业建设集团公司和中国海运(集团)公司挪用信贷资金的八家银行分支机构进行行政处罚。";
FontFamily ff = FontFamily.GenericSerif;
StringFormat sf = new StringFormat();
sf.Trimming = StringTrimming.Word;
e.Graphics.DrawString(str, new Font(ff, 8f), new SolidBrush(Color.Black), new RectangleF(5, 5, this.ClientSize.Width - 10, this.ClientSize.Height - 10), sf);
}
,但不能整词的换行,整词换行就是像Word一样,当一行显示不下时,遇到一个是一个字时直接换行,当遇一个词时,将整个词换到下一行.
请问该怎么实现?
我知道词的规则,我也试过自己控制换行(计算 x,y值一个词一个词的打印,判断窗体的width,当超过宽度时换行,但运行效率太低)