- Регистрация
- 01.05.2015
- Сообщения
- 4 974
- Благодарностей
- 4 431
- Баллы
- 113
Создаю такое вот оглавление на картинке.
Одним блоком добавить не могу, т. к. иконки должны быть напротив каждой главы.
Поэтому добавляю каждый заголовок в цикле, примерно так:
Но все блоки получаются одинаковыми. И если заголовок короткий, то получается дыра, если длинный, то не помещается.
Есть ли методы в C#, которыми, зная размер шрифта, ширину блока и длину строки можно вычислить высоту блока? Чтобы сдвинуть следующий блок на нужно расстояние вниз.
Одним блоком добавить не могу, т. к. иконки должны быть напротив каждой главы.
Поэтому добавляю каждый заголовок в цикле, примерно так:
PHP:
Bitmap bmp = new Bitmap(w,h);
Graphics grp = Graphics.FromImage(bmp);
Color color = colors[0];
Brush brush = new SolidBrush(color);
Font font = new System.Drawing.Font("Arial", 30, FontStyle.Bold, GraphicsUnit.Pixel);
SizeF textSize = new SizeF();
textSize = grp.MeasureString(text[0], font);
System.Drawing.StringFormat stringFormat = new StringFormat();
for (int i = 0; i < 5; i++) {
grp.DrawString(text[i], font, brush, new RectangleF(60, h + i*step, (int)(w*0.5)-50, step), stringFormat);
}
Есть ли методы в C#, которыми, зная размер шрифта, ширину блока и длину строки можно вычислить высоту блока? Чтобы сдвинуть следующий блок на нужно расстояние вниз.