// 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)); } }