如何在PictureBox控件上创建彩色边框?

ham*_*med 4 c#

我有一个PictureBox和一个图像PictureBox1.Image属性.
如何在图像周围放置边框?

Jim*_*son 9

这一直是我用来做的:

要更改边框颜色,请从 Picturebox 控件的 Paint 事件处理程序中调用它:

private void pictureBox1_Paint_1(object sender, PaintEventArgs e)
    {
        ControlPaint.DrawBorder(e.Graphics, pictureBox1.ClientRectangle, Color.Red, ButtonBorderStyle.Solid);
    }
Run Code Online (Sandbox Code Playgroud)

要动态更改边框颜色,例如从鼠标单击事件中,我使用图片框的 Tag 属性来存储颜色并调整图片框的 Click 事件以从那里检索它。例如:

if (pictureBox1.Tag == null) { pictureBox1.Tag = Color.Red; } //Sets a default color
  ControlPaint.DrawBorder(e.Graphics, pictureBox1.ClientRectangle, (Color)pictureBox1.Tag, ButtonBorderStyle.Solid);
Run Code Online (Sandbox Code Playgroud)

然后,图片框 Click 事件将是这样的:

private void pictureBox1_Click(object sender, EventArgs e)
        {
            if ((Color)pictureBox1.Tag == Color.Red) { pictureBox1.Tag = Color.Blue; }
            else {pictureBox1.Tag = Color.Red; }
            pictureBox1.Refresh();
        }
Run Code Online (Sandbox Code Playgroud)

你需要using System.Drawing;在开始时不要忘记pictureBox1.Refresh()在最后调用。享受!


Bee*_*Guy 7

您无法设置a边框的大小和颜色PictureBox.
但你可以做一点技巧来实现这一目标.

将图像设置为BackgroundImage属性.
设置BackgroundImageLayoutCenter.
BackColor属性更改为您想要边框的颜色.
现在调整PictureBox足够大以显示背面颜色,现在在视觉上就像边框一样.

您还可以使用该Padding属性完成最后一步.

希望有所帮助.