Здравствуйте, Аноним, Вы писали:
А>Windows.Forms
А>Необходимо вывести на Graphics текст, вписав его в заданный прямоугольник, фактически известны все настройки Font кроме размера.
А>Как подогнать размер? (Graphics.MeasureString или проще?)
ну да, пробы и ошибки
вот такую штуку я когда-то написал себе, и ушло то на это минут 20 (так много потому, что мало что знал по теме..)
public static Font FindTextFont(Graphics targetGraphics, string fontName, string text, Size paintSize, FontStyle fontStyle, float widthStart, float widthStep)
{
Font lastFont = new Font(fontName, widthStart, fontStyle);
while (true)
{
Font testFont = new Font(fontName, widthStart, fontStyle);
SizeF sz = targetGraphics.MeasureString(text, testFont);
if ((sz.Width > paintSize.Width) || (sz.Height > paintSize.Height))
break;
lastFont = testFont;
widthStart += widthStep;
}
return lastFont;
}