C # заполнить все, кроме GraphicsPath - PullRequest
4 голосов
/ 20 декабря 2009

У меня есть код, который выглядит так:

GraphicsPath p = new GraphicsPath();
// Add some elements to p ...
// ...

g.FillPath(bgBrush, p);
// where g : Graphics and bgBrush : Brush

Что приводит к чему-то похожему на это:

### |
  ##|
 ## |

Как я могу заполнить точное дополнение пути?

Желаемый вывод:

   #|
##  |
#  #|

1 Ответ

8 голосов
/ 21 апреля 2011

Я удивлен, что пока никто не ответил - решение довольно простое. Просто добавьте прямоугольник к пути, и все внутри будет перевернуто.

    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);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...