コード例 #1
0
        public Connection(ItemNode _from, ItemNode _to, Line _line, Canvas canvas)
        {
            from = _from;
            to   = _to;
            line = _line;

            line.Stroke = Brushes.Black;
            Canvas.SetZIndex(line, -1);
            Point p = from.TranslatePoint(new Point(0, 0), canvas);

            line.X1 = p.X + 25;
            line.Y1 = p.Y + 25;
            Point pp = to.TranslatePoint(new Point(0, 0), canvas);

            line.X2 = pp.X + 25;
            line.Y2 = pp.Y + 25;
            canvas.Children.Add(line);
        }
コード例 #2
0
 private void canvas_MouseMove(object sender, MouseEventArgs e)
 {
     if (canvas.IsMouseCaptured)
     {
         Point  t     = e.GetPosition(canvas);
         Vector delta = (e.GetPosition(canvas) - lastpos) * zoom;
         translateTransform.X += delta.X;
         translateTransform.Y += delta.Y;
         lastpos   = e.GetPosition(canvas);
         e.Handled = true;
     }
     else if (e.MouseDevice.LeftButton == MouseButtonState.Pressed && drawLine)
     {
         Point p = ItemBeingConnected.TranslatePoint(new Point(0, 0), canvas);
         ConnectionLine.X1 = p.X + 25;
         ConnectionLine.Y1 = p.Y + 25;
         Point mousePos = e.GetPosition(canvas);
         ConnectionLine.X2 = mousePos.X;
         ConnectionLine.Y2 = mousePos.Y;
     }
 }