基本业务逻辑如下:
    已经知道一个Bitmap对象的大小,和一个字符串,以及字符串的字体等信息,现在需要将字符串一DrawString的方式画在这Bitmap上,如何根据字符串的长度、字体,以及Bitmap的大小,将字符串分割成一个二维的字符串数组,以实现自动换行功能以及如果一个BitMap显示不开及可画成多张图片。(不知道描述的清楚不)例如:
    已经知道一个Bitmap对象的宽=128,高=64,和一个字符串str = "今天小弟又来论坛请教了,还请大侠们多多指教!" 字体为宋体9号字,求将这个字符串分割成一个二维的字符串数组(String[图片数量][行数]),以保证能够在Bitmap里完全显示字符串的值。
格式:
    public string[][] subString(int width,int hight,string str,Font f)
    {
     .......请高人给填个方法体
    }参数:
    int width   Bitmap 图片的宽度
    int hight   Bitmap 图片的高度
    string str  待分割的字符串
    Font f      字符串的字体
返回值
    String [可分割成的图片数量][每张图片的行数] s 

解决方案 »

  1.   

    补充:5楼的说的对啊 
    就是对于一个大的矩型,最多可以容纳多少个小矩型但是问题是大矩形的面积是不固定的(Bitmap对象的大小不定),小矩形的面积也是不固定的(字符串可以由于字体或者字号等因素改变大小)。
    目前可以只针对“宋体”“黑体” 两种字体,可以加粗,不可以使用斜体,字号也只要能从小五号到初号就可以了,有谁能帮忙写写啊,有个思路也行!
    分不够可以再加
      

  2.   

    Graphics.MeasureString可以计算字符串指定字体,指定字符串的长度高度,
    你可以先预先分割一个字符串,然后调用函数计算一下,如果长了就减少字符,如果短了就增加字符,调整好分割长度就可以了。
      

  3.   

    string str = "今天小弟又来论坛请教了,还请大侠们多多指教!" ;
    Font f=new System.Drawing.Font("宋体", 9F);//, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
    Graphics g=this.CreateGraphics();
    SizeF sf= g.MeasureString(str,f);
    //128/sf.Width  一行几个字
    // 64/sf.Height  一张几行
    //这里自己写吧 因为有剩余宽度或高度的问题,楼长并为说明
    //还有一张放不下1个字的问题
    //谁有空添全吧