Я рисую прямоугольники для снимков экрана, но когда я рисую его при перемещении мыши, это выглядит так, как будто ему не хватает и следит за мышью, а не рисуется плавно.

Но я хочу рисоватьс плавностью

Мой код:
У меня есть четыре прямоугольника, и когда я начинаю рисовать, я ставлю им поля между ними и показываю нашу выделенную область в исходном цвете.Но когда мы удаляем четыре внешних прямоугольника, которые образуют черную область (за пределами прямоугольников), это быстро работает раньше, но я также хочу черные внешние области.
Мой код для внешних каналов:
rect_topleft.Visibility = Visibility.Visible;
rect_topleft.Margin = new Thickness(0, 0, 0, h - sY);
rect_bottomleft.Visibility = Visibility.Visible;
rect_bottomleft.Margin = new Thickness(0, startY, w - startX, -25);
rect_bottomright.Visibility = Visibility.Visible;
rect_bottomright.Margin = new Thickness(startX, endY, pictureBox2.Width - endX, 0); //Here picturebox2 is grid
rect_topright.Visibility = Visibility.Visible;
rect_topright.Margin = new Thickness(endX, startY, 0, -25);
РЕДАКТИРОВАТЬ: -
После использованияКод Clemens: 
он отлично работает на отдельном проекте, как показано в ответе, но он все еще отстает в моем коде, когда я его интегрирую
Любое решение для моего кода или любого другогометод для этого: