一、首先创建一个上传文件的类,继承Control类,如下:
public class UploadControl : Control
{
private Image _image;
public UploadControl()
{
this.SetStyle(
ControlStyles.UserPaint | //控件自行绘制,而不使用操作系统的绘制
ControlStyles.AllPaintingInWmPaint | //忽略背景擦除的Windows消息,减少闪烁,只有UserPaint设为true时才能使用。
ControlStyles.OptimizedDoubleBuffer |//在缓冲区上绘制,不直接绘制到屏幕上,减少闪烁。
ControlStyles.ResizeRedraw | //控件大小发生变化时,重绘。
ControlStyles.SupportsTransparentBackColor, //支持透明背景颜色
true);
_image =Properties.Resources.upload;
this.Cursor = Cursors.Hand;
this.AllowDrop = true;
}
}
准备好上传的图片
二、我们需要绘制圆角矩形,所以先准备一个圆角路径,如下:
private GraphicsPath GetRoundedRectPath(Rectangle rect, uint radius)
{
int r = (int)radius << 1;
Rectangle arcRect = new Rectangle(rect.Location, new Size(r, r));
GraphicsPath path = new GraphicsPath();
path.AddArc(arcRect, 180, 90);
//