示例#1
0
 private void DrawArea_MouseUp(object sender, MouseEventArgs e)
 {
     MouseDownDrawArea = false;
     if (CurTool == "Figures")
     {
         if (Figures.ImageIndex == 2)
         {
             if (points.Count == 3)
             {
                 g.DrawPolygon(PEN, points.Cast <Point>().ToArray <Point>());
                 points.Clear();
                 DrawArea.Invalidate();
             }
         }
         else if (Figures.ImageIndex == 4)
         {
             if (points.Count > 1)
             {
                 Contour.Clear(Color.White);
                 Contour.DrawImage(DrawArea.Image, 0, 0);
                 Contour.DrawPolygon(PEN, points.Cast <Point>().ToArray <Point>());
                 DrawArea_G.DrawImageUnscaled(bufer, 0, 0);
             }
         }
         else
         {
             g.DrawImageUnscaled(bufer, 0, 0);
             points.Clear();
         }
     }
     else
     {
         points.Clear();
     }
 }
示例#2
0
        private void lbl_MouseUp(object sender, MouseEventArgs e)
        {
            lbl[0].Location = new Point(DrawArea.Right, DrawArea.Height / 2 + DrawArea.Top);
            lbl[1].Location = new Point(DrawArea.Right, DrawArea.Bottom);
            lbl[2].Location = new Point(DrawArea.Width / 2 + DrawArea.Left, DrawArea.Bottom);
            dragging        = false;
            Object tmp = DrawArea.Image.Clone();

            DrawArea.Image.Dispose();
            g.Dispose();
            DrawArea.Image = new Bitmap(DrawArea.Size.Width, DrawArea.Size.Height);
            g = Graphics.FromImage(DrawArea.Image);
            g.DrawImageUnscaled((Image)tmp, new Rectangle(0, 0, ((Image)tmp).Width, ((Image)tmp).Height));
            ((Image)tmp).Dispose();

            DrawArea_G.Dispose();
            bufer.Dispose();
            Contour.Dispose();
            DrawArea_G = DrawArea.CreateGraphics();
            bufer      = new Bitmap(DrawArea.Width, DrawArea.Height);
            Contour    = Graphics.FromImage(bufer);
        }
示例#3
0
        private void DrawArea_MouseMove(object sender, MouseEventArgs e)
        {
            Status.Items["CurPoss"].Text = e.X + ", " + e.Y;
            if (MouseDownDrawArea)
            {
                int X = e.X - SizePen / 2;
                int Y = e.Y - SizePen / 2;
                switch (CurTool)
                {
                case "Pen":
                    PEN.Width = SizePen = 1;
                    g.FillRectangle(PEN.Brush, X, Y, SizePen, SizePen);
                    g.DrawLine(PEN, prevLocMouse.X + SizePen / 2, prevLocMouse.Y + SizePen / 2, X + SizePen / 2, Y + SizePen / 2);
                    DrawArea.Invalidate();
                    break;

                case "Brush":
                    if (SizePen > 1)
                    {
                        g.FillEllipse(PEN.Brush, X, Y, SizePen, SizePen);
                    }
                    else
                    {
                        g.FillRectangle(PEN.Brush, X, Y, SizePen, SizePen);
                    }
                    g.DrawLine(PEN, prevLocMouse.X + SizePen / 2, prevLocMouse.Y + SizePen / 2, X + SizePen / 2, Y + SizePen / 2);
                    DrawArea.Invalidate();
                    break;

                case "Pattern":
                    HatchBrush Hatch = new HatchBrush(HatchStyle.Horizontal + Pattern.ImageIndex, CurColor.BackColor, Color.FromArgb(0, 0, 0, 0));
                    if (SizePen > 1)
                    {
                        g.FillEllipse(Hatch, X, Y, SizePen, SizePen);
                    }
                    else
                    {
                        g.FillRectangle(Hatch, X, Y, SizePen, SizePen);
                    }
                    Hatch.Dispose();
                    DrawArea.Invalidate();
                    break;

                case "Figures":
                    Contour.Clear(Color.White);
                    Contour.DrawImage(DrawArea.Image, 0, 0);
                    switch (Figures.ImageIndex)
                    {
                    case 0:
                        Contour.DrawRectangle(PEN, (e.X > x) ? x : e.X, (e.Y > y) ? y : e.Y, (e.X > x) ? e.X - x : x - e.X, (e.Y > y) ? e.Y - y : y - e.Y);
                        break;

                    case 1:
                        Contour.DrawEllipse(PEN, (e.X > x) ? x : e.X, (e.Y > y) ? y : e.Y, (e.X > x) ? e.X - x : x - e.X, (e.Y > y) ? e.Y - y : y - e.Y);
                        break;

                    case 3:
                        Contour.DrawLine(PEN, x, y, e.X, e.Y);
                        break;
                    }
                    DrawArea_G.DrawImageUnscaled(bufer, 0, 0);
                    break;
                }
                prevLocMouse.X = X;
                prevLocMouse.Y = Y;
            }
        }