您的位置:首页 > 编程语言 > C#

c#获取字符串宽度(像数方法)

2011-09-08 14:17 197 查看
private ArrayList GetSeparateSubString(string mOrigianlString, float subStringCharNumber)

{

ArrayList resultList = new ArrayList();

string tempStr = mOrigianlString;

float charNumber = subStringCharNumber;

float totalWidth = 0f;

string mSubStr = "";

for (int i = 0; i < tempStr.Length; i++)

{

string mChar = tempStr.Substring(i, 1);

Graphics grap = this.CreateGraphics();

grap.PageUnit = GraphicsUnit.Pixel;

Font f = new Font("MS P明朝",9);

float fWidth = grap.MeasureString(mChar, f).Width;

totalWidth += fWidth;

if (totalWidth - fWidth / 2 > charNumber ) //球越过门线没有?

{

resultList.Add(mSubStr);

if (i == tempStr.Length - 1)

{

mSubStr = mChar;

resultList.Add(mSubStr);

}

else

{

totalWidth = fWidth;

mSubStr = mChar;

}

}

else if (totalWidth == charNumber)

{

mSubStr += mChar;

resultList.Add(mSubStr);

totalWidth = 0;

mSubStr = "";

}

else if (i == tempStr.Length - 1)

{

mSubStr += mChar;

resultList.Add(mSubStr);

}

else

{

mSubStr += mChar;

}

}

return resultList;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: