我在表单中有一个图片框。在那个图片框的中间,我放置了一张所选照片的名称。现在,我想为所选名称的背景着色。
我怎样才能做到这一点?
我在表单中有一个图片框。在那个图片框的中间,我放置了一张所选照片的名称。现在,我想为所选名称的背景着色。
我怎样才能做到这一点?
我不确定您的意思,但 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);
}
}
您可以尝试以下示例。
只需在表单中添加一个图片框,并为 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));
}
}
希望这对您有所帮助。
您的问题可能与更改控件的背景颜色属性一样简单,您可以在属性窗口中更改该属性。