protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e) { base.OnMouseLeftButtonDown(e); _startPointClick = e.GetPosition(this); var element = GetElement(_startPointClick); if (element == null) { if (e.ClickCount == 2) { _graphViewModel.AddVertex(_startPointClick); return; } if (!Keyboard.IsKeyDown(Key.RightCtrl) && !Keyboard.IsKeyDown(Key.LeftCtrl)) { _graphViewModel.UnselectElements(); } } // Select element else { if (!_graphViewModel.SelectedElements.Contains(element.Id)) { AddSelectedElement(element, false); } _targetUiElement = element; } CaptureMouse(); base.OnMouseLeftButtonDown(e); }