private void DragFinished(bool cancelled)
 {
     AlchemyCanvas.ReleaseMouseCapture();
     if (_isDragging)
     {
         if (cancelled == false)
         {
             Canvas.SetTop(_originalElement, _originalTop + _topOffset);
             Canvas.SetLeft(_originalElement, _originalLeft + _leftOffset);
         }
     }
     _isDragging = false;
     _isDown     = false;
 }
 private void PhoneApplicationPageMouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
 {
     if (e.OriginalSource == AlchemyCanvas)
     {
     }
     else
     {
         _isDown          = true;
         _startPoint      = e.GetPosition(AlchemyCanvas);
         _originalElement = e.OriginalSource as UIElement;
         AlchemyCanvas.CaptureMouse();
         e.Handled = true;
     }
 }