根据文本调整矩形大小

时间:2010-05-14 12:37:49

标签: .net drawstring

我正在使用自定义控件,我使用Rectangle来显示一些数据。现在,假设矩形的宽度和高度设置为100。

如果我的数据量较少,那么很好,我可以使用DrawString方法绘制它。但是,有时数据会更大,因此会被剪裁。

我尝试过使用MeasureString方法,但它没有检索到正确的值。有什么方法我可以看到字符串的大小,[长度和高度],如果必须以100px宽度矩形显示。我的意思是高度可以增加而不是宽度,这样我就可以使用正确的字符串高度使其在该矩形中显示为完整。

2 个答案:

答案 0 :(得分:0)

听起来你有两个不同的问题需要克服

  1. 准确测量字符串。为此,请参阅TextRenderer.MeasureText,它会为您提供预期的像素大小。

    另一种方法是绘制字符串,然后通过查找图像中不包含文本颜色的最左侧和最右侧列来自行测量。您可以使用GetPixel。这种方法需要更多的代码,而且速度会慢一些,所以我不推荐它。

  2. 最大化绘制字符串的大小,同时使其宽度为100 。为此,您可以简单地在循环中测量字符串,以找到超过100px的字体大小。猜猜并从那里开始工作。

答案 1 :(得分:0)

将矩形的高度设置为0.然后在我们执行MeasureString之后,我们可以找到可以使用指定宽度的矩形放置的字符串的高度。将该高度赋予矩形以绘制,然后在其中绘制字符串。

http://www.tigraine.at/2009/01/03/gdi-drawing-string-with-word-wrap/