c#在图片中只显示执行的区域,其余部分以指定颜色填充,不是全部显示指定区域

class PicClass:PictureBox
{
public PicClass()
{
this.SetStyle(ControlStyles.ResizeRedraw, true);//空间大小改变时,控件会重绘
}

    protected override void OnPaint(PaintEventArgs pe)
    {
        base.OnPaint(pe);


        Graphics graphics = pe.Graphics  ;//一定不要使用this.createGraphics
        graphics.Clear(Color.White );
        GraphicsPath graphicsPath = new GraphicsPath();
        graphicsPath.AddEllipse(new Rectangle (30,30,50,50));
        Region oldElip = graphics.Clip;
        graphics.Clip = new Region(graphicsPath);
        graphics.DrawImage(this.Image, new Rectangle(0, 0, this.Width , this.Height ) );
        graphics.Clip = oldElip;//剪辑区域还原


    }

c#在图片中只显示执行的区域,其余部分以指定颜色填充,不是全部显示指定区域_第1张图片

你可能感兴趣的:(c#)