protected override void OnMouseDown(System.Windows.Input.MouseButtonEventArgs e) { base.OnMouseDown(e); // usual selection business canvas = VisualTreeHelper.GetParent(this) as DesignCanvas; if (canvas != null) { if ((Keyboard.Modifiers & (ModifierKeys.Shift | ModifierKeys.Control)) != ModifierKeys.None) if (this.IsSelected) { canvas.SelectionService.RemoveFromSelection(this); } else { canvas.SelectionService.AddToSelection(this); } else if (!this.IsSelected) { canvas.SelectionService.SelectItem(this); } var designItemInfo = this.ShapeInfoUnit.ShapeInfo as DesignConnectionInfo; if (e.ChangedButton == MouseButton.Left && e.LeftButton == MouseButtonState.Pressed) { if (e.ClickCount == 2) { canvas.RaiseDesignConnectionMouseDoubleClick(designItemInfo); } } else if (e.ChangedButton == MouseButton.Right && e.RightButton == MouseButtonState.Pressed) { if (e.ClickCount == 1) { canvas.RaiseDesignConnectionMouseRightClick(designItemInfo); } } Focus(); } e.Handled = false; }