Как использовать форму для определения области отсечения? - PullRequest
0 голосов
/ 23 августа 2009

Я все еще имитирую радар (или пытаюсь), и методом проб и ошибок мне удалось нарисовать круг поверх фона моей картинки, чтобы более или менее покрыть целевую область, к которой я хочу рисовать. Сейчас я пытаюсь сделать эту область моим регионом отсечения. Как мне этого добиться? Я не сталкивался ни с чем, что объясняет это ясно. У меня есть следующий код:

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 Ответ

1 голос
/ 23 августа 2009

Вы не можете использовать нарисованный на графике круг, вам нужно определить его отдельно для региона:

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