# Other .NET Programming > Windows Presentation Foundation (WPF) & XAML forum >  Draw Line

## Prajeesh07

I want to draw a line.
I use this code 




```
private void OnMouseDown(object Sender, MouseEventArgs Args)
{
                StartPoint = Args.GetPosition(DrawingCanvas);
}

private void OnMouseMove(object Sender, MouseEventArgs Args)
{
 if (Args.LeftButton == MouseButtonState.Pressed)
                {
                    EndPoint = Args.GetPosition(DrawingCanvas);
                    DrawLine(StartPoint, EndPoint, DrawingCanvas);
                }
}

private void DrawLine(Point From, Point To, Canvas TargetCanvas)
        {
            CurrentLine = new Line();
            CurrentLine.StrokeEndLineCap = PenLineCap.Round;
            CurrentLine.StrokeStartLineCap = PenLineCap.Round;
            CurrentLine.Stroke = Brushes.Red;
            CurrentLine.StrokeThickness = 2.0;
            CurrentLine.X1 = From.X;
            CurrentLine.Y1 = From.Y;
            CurrentLine.X2 = To.X;
            CurrentLine.Y2 = To.Y;
            Canvas.SetLeft(TargetCanvas, From.X);
            Canvas.SetTop(TargetCanvas, From.Y);
            TargetCanvas.Children.Add(CurrentLine);
        }
```

But the previous line is visible.
How can I avoid that??

Thanks & Regards

Prajeesh Prabhakar

----------


## gstercken

> But the previous line is visible.
> How can I avoid that??


Well, this is sort of obvious, since it's exactly what your code does: It creates a new Line object on every MouseMove event. I guess what you intended is to create the new line in your MouseDown handler, and change only its end point when the mouse is moved?

----------

