alexsandr0000
@alexsandr0000
Программист C#/C++/C

Как в C# Graphics вычислить перенос строк?

Как определить как переносятся строки при отрисовке много строчного текста?
Текст отрисовывается:
var _numberLines = GetNumOfLines($"{_property.Текст}", (int)(PicBoxWidth - 6), _font);
var _offcet = _font.Height * _numberLines;
g.DrawString($"{_property.Текст}", _font, Brushes.Black, new RectangleF(5, 0, PicBoxWidth - 6, _offcet), new StringFormat(StringFormatFlags.LineLimit));

где число строк определяется:
private int GetNumOfLines(string multiPageString, int wrapWidth, Font fnt)
{
        var sfFmt = new StringFormat(StringFormatFlags.LineLimit);
        using(var g = Graphics.FromImage(New Bitmap(1, 1)))
       {
            var iHeight = g.MeasureString(multiPageString, fnt, wrapWidth, sfFmt).Height;
            var iOneLineHeight = g.MeasureString("Z", fnt, wrapWidth, sfFmt).Height;
            return (int)(iHeight / iOneLineHeight)
        }
}

Есть у кого мысли?
  • Вопрос задан
  • 289 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы