public void DrawingPanelRightMouseButtonPressed(int mouseX, int mouseY) { RightClickPopUp = null; var clickedOnSelectedShape = SelectedShapes.Where(s => s.Contains(mouseX, mouseY)).ToList().Count > 0; if (SelectedShapes.Count > 1 && clickedOnSelectedShape) { var tmpSelectedShapes = new GroupShapes(); foreach (var shape in SelectedShapes) { tmpSelectedShapes.Add(shape); } RightClickPopUp = tmpSelectedShapes.CreateRightClickPopUp(); } else { var shape = DrawnShapes.LastOrDefault(s => s.Contains(mouseX, mouseY)); if (shape != null) { RightClickPopUp = shape.CreateRightClickPopUp(); } } if (RightClickPopUp != null) { _g.OpenRightClickPopUp(); } }
private void MovableMoved(IShape sender, Point oldPos, Point newPos) { if (SelectedShapes == null) { return; } var deltaX = newPos.X - oldPos.X; var deltaY = newPos.Y - oldPos.Y; if (Math.Abs(deltaX) < 1e-6 && Math.Abs(deltaY) < 1e-6) { return; } foreach (var item in SelectedShapes?.Where(x => x != sender)) { item.Left = item.Left + deltaX; item.Top = item.Top + deltaY; } CheckBounds(sender); }