2011-01-22 60 views
1

我想在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

回答

8
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); 
} 
+0

我喜歡這種方法更好,我已經想出了 – Brad 2011-01-22 17:08:16

1

最簡單的辦法:

  • 填寫Reacngle第一
  • 然後填寫橢圓(用透明刷)
1

目前尚不清楚需要哪種透明度。簡單的方法是顛倒這個問題。使用TextureBrush使用Graphics.FillEllipse()繪製圖像。

1

您可以嘗試使用regions。創建一個矩形區域,排除一個橢圓,然後填充它。