Я пытаюсь перетащить прямоугольный элемент с именем «Rec» с помощью мыши.Я могу перетащить его в нужное место, и прямоугольник останется там, но когда я попытаюсь перетащить его снова, он вернется в первое место, и оттуда начнется перетаскивание.Я хочу перетащить его с того места, где я его оставил в прошлый раз.Я просто не понимаю, в чем проблема.
У меня есть только один холст, и все мои элементы находятся внутри него, холст называется "maincanvas".Я использую следующие очень простые события для перетаскивания.
Point originalPosition = new Point(0, 0);
private void Rec_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)
{
Point CurrPosition = Mouse.GetPosition(MainCanvas);
Canvas.SetLeft(e.Source as UIElement, -( originalPosition.X - CurrPosition.X));
Canvas.SetTop(e.Source as UIElement, -(originalPosition.Y - CurrPosition.Y));
}
private void Rec_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
UIElement a = e.Source as UIElement;
a.CaptureMouse();
Rec.MouseMove += Rec_MouseMove;
originalPosition = Mouse.GetPosition(MainCanvas);
}
private void Rec_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
Rec.MouseMove -= Rec_MouseMove;
UIElement a = e.Source as UIElement;
a.ReleaseMouseCapture();
originalPosition = new Point(0, 0);
}
Я надеюсь, что вы, ребята, могли бы помочь мне.