我是一个椭圆形的图片框(下面的代码)。我想在图片框周围添加边框。我已经尝试添加第二个矩形,但这只会使我的区域变小。有没有办法建立边界?
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
class OvalPictureBox : PictureBox
{
public OvalPictureBox()
{
}
protected override void OnResize(EventArgs e)
{
base.OnResize(e);
using (var gp = new GraphicsPath())
{
gp.AddEllipse(new Rectangle(0, 0, this.Width - 1, this.Height - 1));
this.Region = new Region(gp);
}
}
private void InitializeComponent()
{
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
this.SuspendLayout();
//
// OvalPictureBox
//
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
this.ResumeLayout(false);
}
}
修改
我明白了。我只是在图片框中画一个椭圆。
float penWidth = 5F;
Pen myPen = new Pen(Color.FromArgb(242, 141, 1), penWidth);
e.Graphics.DrawEllipse(myPen, new RectangleF(new PointF(0, 0), new
SizeF((float)(portraitPicture.Width - 1), portraitPicture.Height - 1)));
myPen.Dispose();
有更清洁或更好的方式吗?或者这是最好的方式吗?
答案 0 :(得分:1)
只需绘制比您已有的椭圆大的椭圆。但是应该首先绘制这个椭圆,否则它将覆盖另一个椭圆。
它应该更大?边框宽度:)