【问题标题】:Use DrawText to draw end of a text使用 DrawText 绘制文本的结尾
【发布时间】:2011-10-22 21:29:36
【问题描述】:

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

TextFormatFlags.Bottom 没有帮助我。

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

【问题讨论】:

  • 在它的顶端?不确定我是否理解。图片可能会有所帮助。
  • 当然,这里是:i.stack.imgur.com/7Se21.png(没有面板也没有标签,只有 DrawText)。
  • 只需使用负 Y 坐标,您可以从 MeasureText 获得它。完美地剪裁顶线,不。
  • 但是我可以使用 MeasureText 从同一字体中获取行高,并进行相应的剪辑。

标签: vb.net textrenderer


【解决方案1】:

在内存中创建一个“溢出区域”大小的位图。使用 -Y 坐标将您的文本字符串绘制到此溢出区域,以便它绘制与您要剪辑到的区域对齐的图像顶部。您现在可以在图像中添加溢出文本,您可以在想要的位置进行绘制。

例如,如果您想在只能显示 75 像素的区域中绘制 100 像素高的文本,请创建一个 25 像素高的图像,然后在 y=-75 处将文本绘制到该图像。

【讨论】:

  • 你解决了我的问题!但是,由于 GDI DrawText() 方法似乎与内存渲染不兼容(因为不支持子像素抗锯齿),我不会使用它。只好另寻他法。使用 DrawString 进行渲染不会产生相同的视觉效果。
猜你喜欢
  • 2012-04-10
  • 1970-01-01
  • 1970-01-01
  • 2014-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-31
  • 1970-01-01
相关资源
最近更新 更多