0

我在表单中有一个图片框。在那个图片框的中间,我放置了一张所选照片的​​名称。现在,我想为所选名称的背景着色。

我怎样才能做到这一点?

4

3 回答 3

20

我不确定您的意思,但 PictureBox 的内容是图像。如果您只想显示文本,请使用标签。如果您希望它具有特定的背景颜色,请将其 BackColor 属性设置为您想要的颜色。

例子:

private void Form1_Load(object sender, EventArgs e)
{
    var label = new Label {BackColor = Color.White};
    Controls.Add(label);
}

编辑:

我允许自己重复使用上面 Sampath 的部分示例,以使其适应用户的评论。

void pictureBox1_Paint(object sender, PaintEventArgs e)
{
    using (var font = new Font("Arial", 14))
    {
        const string pictureName = "Picture.jpg";
        var textPosition = new Point(10, 10);
        //Drawing logic begins here.
        var size = e.Graphics.MeasureString(pictureName, font);
        var rect = new RectangleF(textPosition.X, textPosition.Y, size.Width, size.Height);
        //Filling a rectangle before drawing the string.
        e.Graphics.FillRectangle(Brushes.Red, rect);
        e.Graphics.DrawString(pictureName, font, Brushes.Green, textPosition);
    }
}
于 2012-12-14T14:26:26.550 回答
0

您可以尝试以下示例。

只需在表单中添加一个图片框,并为 Paint 事件添加一个事件处理程序:

您想在 PictureBox中使用Paint 事件。您从e.Graphics获取图形参考,然后使用示例中的DrawString()

private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
    using (Font myFont = new Font("Arial", 14))
    {
        e.Graphics.DrawString("Hello .NET Guide!", myFont, Brushes.Green, new Point(2, 2));
    }
}

希望这对您有所帮助。

于 2012-12-14T14:26:09.173 回答
0

您的问题可能与更改控件的背景颜色属性一样简单,您可以在属性窗口中更改该属性。

于 2012-12-14T16:19:37.443 回答