Paste #37820: Untitled Paste

Date: 2016/11/21 00:01:11 UTC-08:00
Type: Plain Text

View Raw Paste Download This Paste
Copy Link


        private static List<string> WrapText(Graphics graphics, string text, double pixels, Font font, StringFormat sf)
        {
            string[] originalLines = text.Split(new string[] { " " }, StringSplitOptions.None);

            List<string> wrappedLines = new List<string>();

            StringBuilder actualLine = new StringBuilder();
            double actualWidth = 0;

            foreach (string item in originalLines)
            {
                string word = item + " ";
                actualWidth += graphics.MeasureString(word, font, new PointF(0, 0), sf).Width;

                if (actualWidth > pixels)
                {
                    wrappedLines.Add(actualLine.ToString().TrimEnd());
                    actualLine.Clear();
                    actualWidth = 0;
                }
                actualLine.Append(word);
            }

            if (actualLine.Length > 0)
                wrappedLines.Add(actualLine.ToString().TrimEnd());

            return wrappedLines;
        }