Объявим переменную, разрешающую перетаскивание
private Boolean canMove = false;
Если пользователь держит кнопку, то переменная true.
Отжал false.
private void lbl_MouseLeftButtonUp(Object sender, MouseButtonEventArgs e)
{
canMove = false;
}
private void lbl_MouseLeftButtonDown(Object sender, MouseButtonEventArgs e)
{
canMove = true;
}
Перетаскиваем
private void Window_MouseMove(Object sender, MouseEventArgs e)
{
// отменяем перетаскивание, если пользователь не нажал кнопку.
if (!canMove) return;
Control control = this.lbl;
//Берем позиции мыши.
Double x = e.GetPosition(this).X,
y = e.GetPosition(this).Y;
//Устанавливаем значение через margin
control.Margin = new Thickness(x, y, 0, 0);
}