#c_sharp #wpf #wpf_canvas
Делаю рисовалку на WPF, рисую Line на Canvas, но получается не совсем так, как ожидалось. Вот часть, которая отвечает за рисование линии: private void Canvas1_OnMouseMove(object sender, MouseEventArgs e) { if (e.MouseDevice.LeftButton == MouseButtonState.Pressed) { Canvas1.Children.Add(new Line { X1 = e.GetPosition(Canvas1).X, Y1 = e.GetPosition(Canvas1).Y, X2 = e.GetPosition(Canvas1).X + 1, Y2 = e.GetPosition(Canvas1).Y + 1, StrokeStartLineCap = PenLineCap.Round, StrokeEndLineCap = PenLineCap.Round, StrokeThickness = 1, Stroke = Brushes.Black }); } } Но не получается плавной линии. Какие у меня есть ошибки в коде? Как сделать плавное рисование?
Ответы
Ответ 1
Вы каждый раз рисуете линию длинной один пиксель со смещением по координате X и Y. То есть, буквально, из точки с координатами {1:1} в точку {2:2}. Это очевидно из приведённого рисунка - все линии идут под углом 45 градусов. Вам же нужно рисовать линию, которая начинается из конца предыдущей нарисованной. Запоминайте, где была нарисована последняя точка и рисуйте линию до текущей.
Комментариев нет:
Отправить комментарий