Я пытаюсь рисовать на Canvas'e C# wpf, но когда я быстро двигаю мышью получается вот это:
Потом я попробовал вместо кругов линии и все тоже самое
Вот мой код:
public void DrawPen(Point startPoint, Point endPoint, Canvas canvas, Color color, bool isClear = false)
{
SolidColorBrush brushColor = new SolidColorBrush(color);
Ellipse newEllipse = new Ellipse()
{
Stroke = brushColor,
Width = 5,
Height = 5
};
newEllipse.SetValue(Canvas.LeftProperty, endPoint.X);
newEllipse.SetValue(Canvas.TopProperty, endPoint.Y);
canvas.Children.Add(newEllipse);
}
Эта функция срабатывает при зажатой ЛКМ и движении мыши на canvas
private void CanvasMouseMove(object sender, MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
endPoint = e.GetPosition(Canvas);
switch (currentShape)
{
case Shapes.Pen:
d.DrawPen(startPoint, endPoint, Canvas, currentColor);
break;
case Shapes.Line:
d.DrawLine(startPoint, endPoint, Canvas, currentColor);
break;
case Shapes.Rectangle:
d.DrawRectangle(startPoint, endPoint, Canvas, currentColor);
break;
case Shapes.Ellipse:
d.DrawEllipse(startPoint, endPoint, Canvas, currentColor);
break;
}
}
}
Как я могу рисовать быстро и нормально?