Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Формирование & отображение региона


Автор: drinkOut 21.3.2007, 11:58
Захотелось мне непрямоугольным регионом на форме себя порадовать. А не выходит.. smile 
Код

private void gbCanvas_Paint(object sender, PaintEventArgs e)
{
    Point[] points = { new Point(1, 100), new Point(50, 50), new Point(100, 1) };
    byte[] types = { (byte)PathPointType.Start, (byte)PathPointType.Line, (byte)PathPointType.Line };
    GraphicsPath gp = new GraphicsPath(points, types);
    Region rgn = new Region(gp);
    e.Graphics.FillRegion(Brushes.Blue, rgn);
}

Помогите навести в мире порядок. smile 

Автор: it_medved 11.4.2008, 11:44
Код

GraphicsPath path = new GraphicsPath();
                path.AddEllipse(e.X, e.Y, 50, 80);
                this.Region = new Region(path);

Автор: vponomarov 11.4.2008, 14:54
drinkOut, а как ты хочешь залить не замкнутый регион?
как минимум нужно сделать так:
Код

Point[] points = {new Point(0,0), new Point(1, 100), new Point(100, 1)};
            byte[] types = { (byte)System.Drawing.Drawing2D.PathPointType.Start | (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line | (byte)PathPointType.CloseSubpath};
            GraphicsPath gp = new GraphicsPath(points, types);
            Region rgn = new Region(gp);
            e.Graphics.FillRegion(Brushes.Blue, rgn);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)