如何实现自动换行?

2023-11-22

XNA有Spritefont类,它有一个MeasureString方法,可以返回一个物体的宽度和高度string。我试图了解如何创建一个方法来有效地返回一个字符串Environment.Newline插入到正确的位置,以便适合特定的宽度和高度(矩形用作其参数)。


我发现以下代码:XNA - 基本自动换行

public string WrapText(SpriteFont spriteFont, string text, float maxLineWidth)
{
    string[] words = text.Split(' ');
    StringBuilder sb = new StringBuilder();
    float lineWidth = 0f;
    float spaceWidth = spriteFont.MeasureString(" ").X;

    foreach (string word in words)
    {
        Vector2 size = spriteFont.MeasureString(word);

        if (lineWidth + size.X < maxLineWidth)
        {
            sb.Append(word + " ");
            lineWidth += size.X + spaceWidth;
        }
        else
        {
            sb.Append("\n" + word + " ");
            lineWidth = size.X + spaceWidth;
        }
    }

    return sb.ToString();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何实现自动换行? 的相关文章

随机推荐