如何使用形状定义剪裁区域?

时间:2009-08-23 16:10:12

标签: c# .net winforms graphics

我仍在模拟雷达(或试图)并通过试验和错误设法在我的图片框背景上绘制一个馅饼,或多或少地覆盖了我想要绘制的目标区域。现在我正试图将该区域作为裁剪区域。我该如何实现这一目标?我没有遇到任何能够清楚解释这一点的事情。我有以下代码:

void OnPaintRadar(Object sender, PaintEventArgs e)
{
    Graphics g = e.Graphics;
    Rectangle radar_rect = new Rectangle(myRadarBox.Left + 90, myRadarBox.Left + 18, myRadarBox.Width - 200, myRadarBox.Height + 200);
    using (Pen drw_pen = new Pen(Color.White, 1) )
    {
        g.DrawPie(drw_pen,radar_rect, 180, 180);
    }
}

我现在要做的就是做馅饼我刚刚画了剪裁区。

1 个答案:

答案 0 :(得分:1)

您不能使用您在图形上绘制的饼图,您需要为该区域单独定义它:

GraphicsPath gpath new GraphicsPath();
gpath.AddPie(rect, startAngle, sweepAngle);
gpath.CloseFigure();
this.Region = new Region(gpath);