Не получается двигать обьект wpf

Я пытаюсь создать user control, который можно передвигать мышкой. Код, отвечающий за перемещение работал до его установки в user control. Я подозреваю, что ошибка в канвасе. Есть какие-то идеи?

    /// <summary>
    /// Логика взаимодействия для VertexUserControl.xaml
    /// </summary>
    public partial class VertexUserControl : UserControl
    {
        Vector relativeMousePos;
        FrameworkElement draggedObject;
        Canvas DragArena;
        public VertexUserControl(Canvas canv, string name)
        {
            InitializeComponent();
            DragArena = canv;
            this.Name = name;
        }

        public VertexUserControl()
        {
            InitializeComponent();
        }
        void StartDrag(object sender, MouseButtonEventArgs e)
        {
            draggedObject = (FrameworkElement)sender;
            relativeMousePos = e.GetPosition(draggedObject) - new Point();
            draggedObject.MouseMove += OnDragMove;
            draggedObject.LostMouseCapture += OnLostCapture;
            draggedObject.MouseUp += OnMouseUp;
            Mouse.Capture(draggedObject);
        }

        void OnDragMove(object sender, MouseEventArgs e)
        {
            UpdatePosition(e);
        }

        void UpdatePosition(MouseEventArgs e)
        {
            var point = e.GetPosition(DragArena);
            var newPos = point - relativeMousePos;
            Canvas.SetLeft(draggedObject, newPos.X);
            Canvas.SetTop(draggedObject, newPos.Y);
        }

        void OnMouseUp(object sender, MouseButtonEventArgs e)
        {
            FinishDrag(sender, e);
            Mouse.Capture(null);
        }

        void OnLostCapture(object sender, MouseEventArgs e)
        {
            FinishDrag(sender, e);
        }

        void FinishDrag(object sender, MouseEventArgs e)
        {
            draggedObject.MouseMove -= OnDragMove;
            draggedObject.LostMouseCapture -= OnLostCapture;
            draggedObject.MouseUp -= OnMouseUp;
            UpdatePosition(e);
        }
    }

Ответы (0 шт):