2011-10-22 74 views
2

当目标矩形太小时,TextRenderer.DrawText()是否能够绘制文本的末尾?使用DrawText绘制文本的末尾

TextFormatFlags.Bottom没有帮助我。

换句话说:如何在其顶部边缘上剪辑文本?

+0

在上边缘?不知道我明白。照片可能会有所帮助。 – LarsTech

+0

当然,这里是:http://i.stack.imgur.com/7Se21.png(没有面板也没有标签,只是DrawText)。 – Velcro

+0

只需使用负Y坐标,即可从MeasureText中获得。取得最佳效果,不会。 –

回答

1

创建一个内存位图,它是“溢出区域”的大小。使用-Y坐标将您的文本字符串绘制到此溢出区域,以便绘制与要剪辑的区域对齐的图像顶部。现在,您可以在图像中使用溢出文本,您可以在该位置绘制所需的文字。例如,如果要在只能显示75像素的区域绘制100像素高的文本,请创建一个25像素高的图像,然后在y = -75处将文本绘制到该图像。

+0

你解决了我的问题!但是,由于GDI DrawText()方法似乎与内存中渲染不兼容(因为不支持子像素抗锯齿),所以我不会使用它。必须找到其他方式。使用DrawString进行渲染不会产生相同的视觉效果。 – Velcro