// overriden methods to move items around the item grid
        protected void ItemsMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            // mouse button was clicked
            var image = e.Source as Image;

            if ((Movable || ItemSellFlag) && image != null && ItemGrid.CaptureMouse())
            {
                mousePosition = e.GetPosition(ItemCanvas);
                prevX         = MyGridPositionX(mousePosition);
                prevY         = MyGridPositionY(mousePosition);
                draggedImage  = image;
                ItemGrid.Children.Remove(draggedImage);
                draggedImage.Height = ItemGrid.ActualHeight / 6.0; // convenience rescaling (6 rows in the grid)
                draggedImage.Width  = ItemGrid.ActualWidth / 5.0;
                ItemCanvas.Children.Add(draggedImage);
                Canvas.SetLeft(draggedImage, MyCanvasPositionX(mousePosition));
                Canvas.SetTop(draggedImage, MyCanvasPositionY(mousePosition));
            }
        }