Пример #1
0
        private void DrawVerticalLine(int x)
        {
            Point lineStartPoint = PointToScreen(new Point(x, 0));
            Point lineEndPoint   = PointToScreen(new Point(x, Height));

            ControlPaint.DrawReversibleLine(lineStartPoint, lineEndPoint, Color.Black);
        }
Пример #2
0
        public override void OnMouseUp(int x, int y)
        {
            Point scrollOffset = Ctrl.ScrollOffset;
            Point startPoint   = Ctrl.PointToScreen(new Point(startMouseX - scrollOffset.X + 20, startMouseY - scrollOffset.Y + 20));

            ControlPaint.DrawReversibleLine(startPoint, Ctrl.PointToScreen(new Point(endMouseX - scrollOffset.X + 20, endMouseY - scrollOffset.Y + 20)), Color.Black);

            HitTestResult end = Ctrl.Document.HitTest(x, y);

            if ((end == null) || (!(end.activity is BaseActivity)))
            {
                MessageBox.Show("流向没有结束在节点上");
            }
            else if (end.activity is StartActivity)
            {
                MessageBox.Show("流向不能结束于开始节点");
            }

            else
            {
                LineActivity line = new LineActivity(startActivity, end.activity as BaseActivity);
                line.AlignToGrid();
                this.Ctrl.Document.ActivityList.Add(line);
                this.Ctrl.Document.Lines.Add(line);
            }
            Ctrl.RedrawAll();
            Ctrl.CurrentTool = new SelectorTool();
        }
Пример #3
0
        private static void DrawReversibleLineEx(Point A, Point B, Color backColor, int spacing)
        {
            float offsetX, offsetY;

            offsetX = B.X - A.X;
            offsetY = B.Y - A.Y;
            float distance = (float)Math.Sqrt(offsetX * offsetX + offsetY * offsetY);
            float deltaX, deltaY;

            deltaX = offsetX / distance * spacing;
            deltaY = offsetY / distance * spacing;

            for (int i = 0; i < distance / spacing; ++i)
            {
                if (i / 2 * 2 != i)
                {
                    continue;
                }
                PointF a, b;
                a = new PointF(A.X + deltaX * i, A.Y + deltaY * i);
                b = new PointF(A.X + deltaX * (i + 1), A.Y + deltaY * (i + 1));

                ControlPaint.DrawReversibleLine(Point.Round(a), Point.Round(b), backColor);
            }
        }
Пример #4
0
        private void OnMouseUp(Object sender, MouseEventArgs e)
        {
            var      thisform = this.target;
            Graphics g        = thisform.CreateGraphics();
            Pen      p        = new Pen(Color.Blue, 2);

            if (drawAction == DrawAction.Line)
            {
                ControlPaint.DrawReversibleLine(thisform.PointToScreen(ps), thisform.PointToScreen(pe), Color.Black);
                g.DrawLine(p, ps, pe);
            }
            else
            {
                ControlPaint.DrawReversibleFrame(thisform.RectangleToScreen(SelectRect), Color.Black, FrameStyle.Dashed);
                g.DrawRectangle(p, SelectRect);
            }
            g.Dispose();
            if (OnFinished != null)
            {
                OnFinished(this, new RectangleArgs()
                {
                    Rectangle = SelectRect
                });
            }
        }
        private void c1Chart1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            if (moving)
            {
                double x = 0, y = 0;
                if (trendChart.ChartGroups[0].CoordToDataCoord(e.X, e.Y, ref x, ref y))
                {
                    if (y > 100)
                    {
                        y = 100;
                    }
                    else if (y < 0)
                    {
                        y = 0;
                    }

                    trendChart.ChartGroups[0].ChartData[move_si].X[move_pi] = x;
                    trendChart.ChartGroups[0].ChartData[move_si].Y[move_pi] = y;
                    CalculateErrors();
                }

                trendChart.Cursor = Cursors.Default;
                moving            = false;

                if (!prev.IsEmpty)
                {
                    Point pt1 = trendChart.PointToScreen(move_pt);
                    ControlPaint.DrawReversibleLine(pt1, prev, trendChart.ChartArea.PlotArea.BackColor);
                    prev = Point.Empty;
                }
            }
        }
Пример #6
0
 private void DrawVerticalLine(int x)
 {
     ControlPaint.DrawReversibleLine(
         PointToScreen(new Point(x, 0)),
         PointToScreen(new Point(x, Height)),
         Color.Black);
 }
Пример #7
0
        private void DrawTerminalSegments(System.Drawing.Point prevPoint, System.Drawing.Point curPoint)
        {
            if (m_Points.Count == 2)
            {
                var graph = MapImage.CreateGraphics();
                graph.DrawLine(new Pen(Color.Black), m_Points[0], m_Points[1]);
            }

            if (curPoint != System.Drawing.Point.Empty)
            {
                ControlPaint.DrawReversibleLine(MapImage.PointToScreen(curPoint), MapImage.PointToScreen(m_Points[0]),
                                                Color.Black);
                if (m_Points.Count > 1)
                {
                    ControlPaint.DrawReversibleLine(MapImage.PointToScreen(curPoint),
                                                    MapImage.PointToScreen(m_Points[m_Points.Count - 1]), Color.Black);
                }
            }

            if (prevPoint != System.Drawing.Point.Empty)
            {
                ControlPaint.DrawReversibleLine(MapImage.PointToScreen(prevPoint), MapImage.PointToScreen(m_Points[0]),
                                                Color.Black);
                if (m_Points.Count > 1)
                {
                    ControlPaint.DrawReversibleLine(MapImage.PointToScreen(prevPoint),
                                                    MapImage.PointToScreen(m_Points[m_Points.Count - 1]), Color.Black);
                }
            }
        }
Пример #8
0
 public override void MouseMove(object sender, MouseEventArgs e)
 {
     if (IsMouseDown)
     {
         Panel panel = (Panel)sender;
         if (this.Step == 0)
         {
         }
         else if (this.Step == 1)
         {
             if (!this.ToPoint.IsEmpty)
             {
                 ControlPaint.DrawReversibleLine(panel.PointToScreen(FromPoint), panel.PointToScreen(ToPoint), Color.Red);
             }
             ToPoint = new Point(e.X, e.Y);
             ControlPaint.DrawReversibleLine(panel.PointToScreen(FromPoint), panel.PointToScreen(ToPoint), Color.Red);
         }
         else if (this.Step == 2)
         {
             if (!this.Point3.IsEmpty)
             {
                 ControlPaint.DrawReversibleLine(panel.PointToScreen(FromPoint), panel.PointToScreen(Point3), Color.Red);
                 ControlPaint.DrawReversibleLine(panel.PointToScreen(ToPoint), panel.PointToScreen(Point3), Color.Red);
             }
             Point3 = new Point(e.X, e.Y);
             ControlPaint.DrawReversibleLine(panel.PointToScreen(FromPoint), panel.PointToScreen(Point3), Color.Red);
             ControlPaint.DrawReversibleLine(panel.PointToScreen(ToPoint), panel.PointToScreen(Point3), Color.Red);
         }
     }
 }
Пример #9
0
        public override void OnMouseUp(int x, int y)
        {
            Point scrollOffset = Ctrl.ScrollOffset;
            Point startPoint   = Ctrl.PointToScreen(new Point(startMouseX - scrollOffset.X + 20, startMouseY - scrollOffset.Y + 20));

            ControlPaint.DrawReversibleLine(startPoint, Ctrl.PointToScreen(new Point(endMouseX - scrollOffset.X + 20, endMouseY - scrollOffset.Y + 20)), Color.Black);

            HitTestResult end = Ctrl.Document.HitTest(x, y);
            //if ((end == null) || (!(end.control is BaseControl)))
            //{
            //    MessageBox.Show("流向没有结束在节点上");
            //}

            //else
            //{
            Point       sPoint = new Point(startMouseX - scrollOffset.X, startMouseY - scrollOffset.Y);
            Point       ePoint = new Point(endMouseX - scrollOffset.X, endMouseY - scrollOffset.Y);
            LineControl line   = new LineControl(sPoint, ePoint);

            line.AlignToGrid();
            this.Ctrl.Document.ControlList.Add(line);
            this.Ctrl.Document.Lines.Add(line);
            //}
            Ctrl.RedrawAll();
            Ctrl.CurrentTool = new SelectorTool();
        }
Пример #10
0
        public override void OnMouseMove(int x, int y)
        {
            if (x == startMouseX || y == startMouseY)
            {
                //在屏幕上画线
                Point scrollOffset = Ctrl.ScrollOffset;
                Point startPoint   = Ctrl.PointToScreen(new Point(startMouseX - scrollOffset.X + 20, startMouseY - scrollOffset.Y + 20));
                ControlPaint.DrawReversibleLine(startPoint, Ctrl.PointToScreen(new Point(endMouseX - scrollOffset.X + 20, endMouseY - scrollOffset.Y + 20)), Color.Black);
                Point endPoint = Ctrl.PointToScreen(new Point(x - scrollOffset.X + 20, y - scrollOffset.Y + 20));

                ControlPaint.DrawReversibleLine(startPoint, endPoint, Color.Black);
            }
            else
            {
                //擦除
                ControlPaint.DrawReversibleFrame(theRectangle, Color.Black, FrameStyle.Dashed);

                //在屏幕上画虚线框
                Point scrollOffset = Ctrl.ScrollOffset;
                Point startPoint   = Ctrl.PointToScreen(new Point(startMouseX - scrollOffset.X + 20, startMouseY - scrollOffset.Y + 20));
                Point endPoint     = Ctrl.PointToScreen(new Point(x - scrollOffset.X + 20, y - scrollOffset.Y + 20));
                int   width        = endPoint.X - startPoint.X;
                int   height       = endPoint.Y - startPoint.Y;
                theRectangle = new Rectangle(startPoint.X, startPoint.Y, width, height);
                ControlPaint.DrawReversibleFrame(theRectangle, Color.Black, FrameStyle.Dashed);
            }

            setEndMousePosition(x, y);
        }
Пример #11
0
        public void Redirect(PaintEventArgs e, Point end2)
        {
            ControlPaint.DrawReversibleLine(Point.Round(End1), Point.Round(End2), EdgeColor);

            End2 = end2;

            ControlPaint.DrawReversibleLine(Point.Round(End1), Point.Round(End2), EdgeColor);
        }
Пример #12
0
        private void DrawXSplitter()
        {
            int   x  = GetSplitX();
            Point p1 = PointToScreen(new Point(x, 0));
            Point p2 = PointToScreen(new Point(x, Height));

            ControlPaint.DrawReversibleLine(p1, p2, BackColor);
        }
Пример #13
0
        private void DrawYSplitter()
        {
            int   y  = GetSplitY();
            Point p1 = PointToScreen(new Point(0, y));
            Point p2 = PointToScreen(new Point(Width, y));

            ControlPaint.DrawReversibleLine(p1, p2, BackColor);
        }
Пример #14
0
        private void RubberLine(Int32 x1, Int32 y1, Int32 x2, Int32 y2)
        {
            Point p1 = new Point(x1, y1);
            Point p2 = new Point(x2, y2);

            p1 = PointToScreen(p1);
            p2 = PointToScreen(p2);
            ControlPaint.DrawReversibleLine(p1, p2, Color.Gray);
        }
Пример #15
0
 private void Viewer_MouseMove(object sender, MouseEventArgs e)
 {
     if (e.Button == System.Windows.Forms.MouseButtons.Right)
     {
         ControlPaint.DrawReversibleLine(this.newEdgeStart, this.newEdgeEnd, System.Drawing.Color.Black);
         this.newEdgeEnd = Cursor.Position;
         ControlPaint.DrawReversibleLine(this.newEdgeStart, this.newEdgeEnd, System.Drawing.Color.Black);
     }
 }
 private void RedrawChart()
 {
     if (!curPosition.IsEmpty)
     {
         Point pt = c1Chart1.PointToScreen(curPosition);
         ControlPaint.DrawReversibleLine(new Point(pt.X - 10, pt.Y), new Point(pt.X + 10, pt.Y), c1Chart1.ChartArea.PlotArea.BackColor);
         ControlPaint.DrawReversibleLine(new Point(pt.X, pt.Y - 10), new Point(pt.X, pt.Y + 10), c1Chart1.ChartArea.PlotArea.BackColor);
     }
 }
Пример #17
0
        private void DrawRubberBandLine()
        {
            if (_eraseLastRubberBand)
            {
                EraseOldRubberBandLine();
            }

            ControlPaint.DrawReversibleLine(_rubberBandStart, _rubberBandEnd, Color.Gray);
        }
Пример #18
0
 public void DrawReversibleRectangle(Point p1, Point p2)
 {
     p1 = ImageControl.PointToScreen(p1);
     p2 = ImageControl.PointToScreen(p2);
     ControlPaint.DrawReversibleLine(new Point(p1.X, p1.Y), new Point(p1.X, p2.Y), Color.White);
     ControlPaint.DrawReversibleLine(new Point(p1.X, p2.Y), new Point(p2.X, p2.Y), Color.White);
     ControlPaint.DrawReversibleLine(new Point(p2.X, p2.Y), new Point(p2.X, p1.Y), Color.White);
     ControlPaint.DrawReversibleLine(new Point(p2.X, p1.Y), new Point(p1.X, p1.Y), Color.White);
 }
 private void panel1_MouseMove(object sender, MouseEventArgs e)
 {
     if (e.Button == System.Windows.Forms.MouseButtons.Right)
     {
         ControlPaint.DrawReversibleLine(StartPoint, EndPoint, Color.Black);     // erase previous line
         EndPoint = Cursor.Position;
         ControlPaint.DrawReversibleLine(StartPoint, EndPoint, Color.Black);     // draw new line
     }
 }
Пример #20
0
        public override void OnMouseMove(int x, int y)
        {
            Point scrollOffset = Ctrl.ScrollOffset;
            Point startPoint   = Ctrl.PointToScreen(new Point(startMouseX - scrollOffset.X + 20, startMouseY - scrollOffset.Y + 20));

            ControlPaint.DrawReversibleLine(startPoint, Ctrl.PointToScreen(new Point(endMouseX - scrollOffset.X + 20, endMouseY - scrollOffset.Y + 20)), Color.Black);
            ControlPaint.DrawReversibleLine(startPoint, Ctrl.PointToScreen(new Point(x - scrollOffset.X + 20, y - scrollOffset.Y + 20)), Color.Black);
            setEndMousePosition(x, y);
        }
 private void panel1_MouseUp(object sender, MouseEventArgs e)
 {
     if (e.Button == System.Windows.Forms.MouseButtons.Right)
     {
         ControlPaint.DrawReversibleLine(StartPoint, EndPoint, Color.Black);     // erase previous line
         // ... do something with StartPont and EndPoint in here ...
         // possibly add them to a class level structure to use in the Paint() event to make it persistent?
     }
 }
Пример #22
0
 void RasterPaintStack()
 {
     while (rasterstack.Count > 0)
     {
         Point[] pre = (Point[])rasterstack.Pop();
         ControlPaint.DrawReversibleLine(pre[0], pre[1], this.BackColor);
         //Debug.WriteLine("Popped " + pre[0] + pre[1] + " " + rasterstack.Count);
     }
 }
Пример #23
0
 // Draw line down text box in screen coordinates.
 void DrawReversibleLine(int x)
 {
     if (ctrlDocument != null)
     {
         Point pt1 = ctrlDocument.PointToScreen(new Point(x, 0));
         Point pt2 = ctrlDocument.PointToScreen(
             new Point(x, ctrlDocument.Height));
         ControlPaint.DrawReversibleLine(pt1, pt2, ctrlDocument.BackColor);
     }
 }
Пример #24
0
 private void cursorTimer_Tick(System.Object sender, System.EventArgs e)
 {
     if ((ParentForm.ContainsFocus && (mDrawWave && (!mDrawing && !mSelecting) && !(mMusicPlayer.PlaybackState == CSCore.SoundOut.PlaybackState.Playing))))
     {
         if (((CursorPositionX < CWidth) && (CursorPositionX >= 0)))
         {
             ControlPaint.DrawReversibleLine(this.PointToScreen(new Point(CursorPositionX, 0)), this.PointToScreen(new Point(CursorPositionX, CHeight)), Color.Gray);
         }
     }
 }
Пример #25
0
        private void LineMove(object sender, MouseEventArgs e)
        {
            // First DrawReversible to toggle to the background color
            // Second DrawReversible to toggle to the specified color
            Control drawControl = ((Control)sender);

            ControlPaint.DrawReversibleLine(drawControl.PointToScreen(pointStart), drawControl.PointToScreen(pointEnd), Color.Black);
            pointEnd = new Point(e.X, e.Y);
            ControlPaint.DrawReversibleLine(drawControl.PointToScreen(pointStart), drawControl.PointToScreen(pointEnd), Color.Black);
        }
Пример #26
0
 protected void DrawReversibleLine(Point p1, Point p2)
 {
     if (p1 == p2)
     {
         return;
     }
     p1 = this.PointToScreen(p1);
     p2 = this.PointToScreen(p2);
     ControlPaint.DrawReversibleLine(p1, p2, Color.Transparent);
 }
 private void panel1_MouseDown(object sender, MouseEventArgs e)
 {
     if (e.Button == System.Windows.Forms.MouseButtons.Right)
     {
         Point pt = Cursor.Position;
         StartPoint = pt;
         EndPoint   = pt;
         ControlPaint.DrawReversibleLine(StartPoint, EndPoint, Color.Black);
     }
 }
Пример #28
0
 private void DrawReversibleLine()
 {
     tmpLineDest = new Point((Cursor.Position).X, (Cursor.Position).Y);
     if (!tmpLinePrevdest.IsEmpty)
     {
         ControlPaint.DrawReversibleLine(tmpLinePoint, tmpLinePrevdest, Color.Black);
     }
     ControlPaint.DrawReversibleLine(tmpLinePoint, tmpLineDest, Color.Black);
     tmpLinePrevdest = new Point(tmpLineDest.X, tmpLineDest.Y);
 }
Пример #29
0
        private void RestrictedPaint()
        {
            Rectangle itemRect = GetItemRect(m_dropMarkerOn, ItemBoundsPortion.ItemOnly);
            Point     start    = new Point(itemRect.Left, m_dropMarkerBelow ? itemRect.Bottom : itemRect.Top);
            Point     end      = new Point(Width < itemRect.Right ? Width : itemRect.Right,
                                           m_dropMarkerBelow ? itemRect.Bottom : itemRect.Top);

            start = PointToScreen(start);
            end   = PointToScreen(end);
            ControlPaint.DrawReversibleLine(start, end, SystemColors.Window);
        }
Пример #30
0
 // Draw the Line that is cross
 private void DrawReversibleLine(Point p)
 {
     ControlPaint.DrawReversibleLine(
         PB_FS.PointToScreen(new Point(0, p.Y)),
         PB_FS.PointToScreen(new Point(PB_FS.Width, p.Y)),
         Color.Red);
     ControlPaint.DrawReversibleLine(
         PB_FS.PointToScreen(new Point(p.X, 0)),
         PB_FS.PointToScreen(new Point(p.X, PB_FS.Height)),
         Color.Red);
 }