У меня интересная проблема. Я почти там, но мне любопытно, как другие справятся с этим. Я хочу отобразить несколько многострочных текста в заранее определенной области. Я не знаю, какой будет текст или насколько большой будет площадь, поэтому эту функцию нужно было бы написать в общем виде. Можно предположить, что всегда используется стандартный шрифт, но размер точки - это то, что должно измениться.
Предположим, у вас есть функция, которая будет рисовать текст, который передается ей в виде строкового параметра. Функция имеет объект формы для рисования, а также передается прямоугольный объект, определяющий ограничивающую область текста в форме. Функция должна отображать текст на форме в заданном прямоугольнике в таком большом шрифте, который будет соответствовать. Задача для меня заключалась в том, чтобы рассчитать размер шрифта, который нужно использовать, чтобы текст соответствовал как можно лучше, в прямоугольнике с минимальным пробелом.
Эти 2 уравнения могут быть полезны:
float pixels = (points *dpi)/72f;
float points = (pixels*72f)/dpi);
Также:
float dpi = CreateGraphics().DpiY;