2009-08-23 50 views
0

我仍在模拟雷达(或尝试),并通过反复试验设法在我的影片背景上绘制一个馅饼,或多或少覆盖了我希望绘制的目标区域。现在我正在尝试使该区域成为剪辑区域。我如何实现这一目标?我没有遇到任何明确解释这一点的事情。我有以下代码:如何使用形状来定义裁剪区域?

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

你不能使用你所绘制的图形馅饼,你需要单独定义它的区域:

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

非常感谢 – 2009-08-23 17:15:51

+0

我仍然有一个问题,我添加图像的区域。我用一张小图片来描绘一个物体;使用g.DrawImage填充整个区域的图像不是我想要的结果,g.DrawImageUnscaled没有显示任何内容。 – 2009-08-23 19:25:28