Здравствуйте, Сергей15, Вы писали:
С>Всем добрый день.
С>Есть такая задача: нужно нарисовать строку в заданном прямоугольнике, причем если строка больше чем
С>прямоугольник, текст переносится. Причем переносится не по целым словам, а по буквам — т.е. нарисовал в первой строке
С>сколько поместилось текста, остальное начал рисовать на следующей строке — даже если была середина слова.
С>Можно ли это сделать стандартными средствами? Или хотя бы как измерить какой кусок строки поместится в указанной длине
С>(чтобы самому нарисовать строку по кускам)?
Graphics.DrawString(string, Font, Brush, RectangleF) может рисовать в прямоугольник. Если уж совсем не влезает, отрезает...
Пример:
private void panel1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Graphics g = e.Graphics;
RectangleF rect = new RectangleF(0, 0, 50, 50);
g.DrawString("This is a very long string to be fill in a rectangle", this.Font, Brushes.Blue, rect);
}
Размер строки можно вычислить методом Graphics.MeasureString, у него тоже много перегруженных вариантов...