/// <summary> /// Wraps a string around the width of an area (Ex: The chat box) /// </summary> 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.MeasureRichString(word, Manager); if (lineWidth + size.X < maxLineWidth) { sb.Append(word + " "); lineWidth += size.X + spaceWidth; } else { sb.Append(TomShane.Neoforce.Controls.Manager.StringNewline + word + " "); lineWidth = size.X + spaceWidth; } } return sb.ToString(); }