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