如何填充区域除外的矩形

时间:2011-01-22 16:39:09

标签: c# winforms

我正在尝试在winforms应用程序中填充一个矩形,而不是在中心填充一个允许背景中的图像显示的椭圆。

任何人都可以给我一个关于这个方法的提示,

感谢。

这是我到目前为止所提出的:

  path.AddRectangle(new Rectangle(30, 30, 100, 100));
  path.AddEllipse(new Rectangle(50, 50, 60, 60));
  gfx.FillPath(new SolidBrush(Color.Black), path);

alt text

4 个答案:

答案 0 :(得分:10)

protected override void OnPaint(PaintEventArgs e){
    var rgn  = new Region(new Rectangle(50, 50, 200, 100));
    var path = new GraphicsPath();
    path.AddEllipse(60, 60, 180, 80);
    rgn.Exclude(path);
    e.Graphics.FillRegion(Brushes.Blue, rgn);
}

答案 1 :(得分:1)

简单方法:

  • 先填写Reacngle
  • 然后填充椭圆(使用Transparant画笔)

答案 2 :(得分:1)

目前还不清楚那里需要什么样的透明度。简单的方法是反转问题。使用TextureBrush使用Graphics.FillEllipse()。

绘制图像

答案 3 :(得分:1)

您可以尝试使用regions。创建一个矩形区域,排除一个椭圆,然后填充它。