I have some code that looks like that:
GraphicsPath p = new GraphicsPath();
// Add some elements to p ...
// ...
g.FillPath(bgBrush, p);
// where g : Graphics and bgBrush : Brush
Which results in something that looks like this:
### |
##|
## |
How can I fill the exact complement of the path?
Desired output:
#|
## |
# #|
I'm surprised no one answered so far - the solution is pretty simple. Just add a Rectangle to the path and everything inside gets reverted.
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Graphics g = e.Graphics;
g.Clear(BackColor);
GraphicsPath p = new GraphicsPath();
// add the desired path
p.AddPie(100, 100, 100, 100, 0, 270);
// add the rectangle to invert the inside
p.AddRectangle(new Rectangle(50, 50, 200, 200));
g.FillPath(Brushes.Black, p);
}