位图文本背景和Horizo​​ntalAlignment

时间:2012-02-10 10:37:12

标签: c# text bitmap alignment

我将文本覆盖到位图,如下所示,我需要能够在文本后面设置背景颜色并设置Horizo​​ntalAlignment(即左/右/中心),任何人都可以告诉我如何做到这一点。另请注意,文字大小可能会有所不同。

感谢。

Bitmap frameBitmap = new Bitmap(streamFrameWidth, streamFrameHeight, 
        streamFrameWidth * 3, 
        System.Drawing.Imaging.PixelFormat.Format24bppRgb, pFrame);

using (Graphics g = Graphics.FromImage(frameBitmap))
{
    // Create font and brush.
    Font drawFont = new Font("Arial", 12, FontStyle.Bold);

    SolidBrush drawBrush = new SolidBrush(Color.Black);
    // Create point for upper-left corner of drawing.
    PointF drawPoint = new PointF(10.0F, 40.0F);

    //HorizontalAlignment.

    // draw the text
    g.DrawString(overlayText, drawFont, drawBrush, drawPoint);
}

2 个答案:

答案 0 :(得分:1)

您可以使用DrawString方法的StringFormat参数控制绘制文本的对齐方式。

答案 1 :(得分:0)

您可能需要TextRenderer.MeasureText

返回要显示的文本的大小。将文本的大小与位图的大小相结合,您可以根据所需的Horizo​​ntalAlignment计算出文本的适当位置。

一旦知道了文本的边界(大小和位置),就可以在绘制文本顶部之前,简单地将颜色绘制到这些边界以实现背景颜色。