void ToCanvasKoord(MyLine el) { el.line.X1 = xToCanv(el.firstPoint.X); el.line.Y1 = yToCanv(el.firstPoint.Y); el.line.X2 = xToCanv(el.endPoint.X); el.line.Y2 = yToCanv(el.endPoint.Y); el.AdjustEllipses(); }
private void canvas_MouseMove(object sender, MouseEventArgs e) { var curP = e.GetPosition((IInputElement)sender); var x = xFromCanv(curP.X); var y = yFromCanv(curP.Y); if (addLineStep == AddLine.Second) { var line = lineToAdd.line; lineToAdd.endPoint.X = x; lineToAdd.endPoint.Y = y; line.X2 = curP.X; line.Y2 = curP.Y; var ec = lineToAdd.eEnd; ec.StrokeThickness = 1; ec.Stroke = Brushes.Black; ec.Width = prad; ec.Height = prad; ec.Fill = Brushes.Yellow; lineToAdd.AdjustEllipses(); } else if (addLineStep == AddLine.Null) { if (e.MouseDevice.LeftButton == MouseButtonState.Pressed) { if (selected != null) { var x1 = selected.firstPoint.X; var y1 = selected.firstPoint.Y; var x2 = selected.endPoint.X; var y2 = selected.endPoint.Y; var v = (x - x2) / Math.Abs(y1 - y2); if (Math.Abs(v) > 0 && Math.Abs(v) < 1) { DoLorenc(-v); } } } } }
void HandleAdd(Point cur) { addLineStep = AddLine.Second; lineToAdd = new MyLine(); var line = lineToAdd.line; lineToAdd.endPoint.X = lineToAdd.firstPoint.X = xFromCanv(cur.X); lineToAdd.endPoint.Y = lineToAdd.firstPoint.Y = yFromCanv(cur.Y); line = lineToAdd.line; line.Stroke = SystemColors.WindowFrameBrush; line.X1 = cur.X; line.Y1 = cur.Y; line.X2 = line.X1; line.Y2 = line.Y2; var ec = lineToAdd.eStart; ec.StrokeThickness = 1; ec.Fill = Brushes.Yellow; ec.Stroke = Brushes.Black; ec.Width = prad; ec.Height = prad; lineToAdd.AdjustEllipses(); paintPanel.Children.Add(ec); paintPanel.Children.Add(lineToAdd.eEnd); //wrapLine(line); paintPanel.Children.Add(line); }