我有一个有趣的问题。我快到了,但很好奇其他人将如何解决它。我想在预定义的区域中显示一些多行文本。我不知道文本将是什么或区域有多大,因此必须通用编写该函数。您可以假设始终使用标准字体,但必须更改磅值。
假设您有一个函数,该函数将绘制在字符串参数中传递给它的文本。该函数有一个要在其中绘制的表单对象,并且还传递了一个矩形对象,该对象定义了表单上文本的边界区域。该函数需要在给定矩形中以适合的字体显示表单上的文本。对我来说,挑战是计算字体的大小,以使文本尽可能地适合文本,在具有最小空白的矩形中。
这两个方程可能有用:
float pixels = (points *dpi)/72f;
float points = (pixels*72f)/dpi);
还:
float dpi = CreateGraphics().DpiY;