protected override void OnMouseDown(MouseButtonEventArgs e) { var position = _editor.GetPositionFromPoint(e.GetPosition(_editor)); if (position.HasValue) { var lineNum = position.Value.Line; DebuggerBreakpoint bp; if ((bp = _debugger.GetBreakpoints().FirstOrDefault(x => x.Line == lineNum)) != null) { bp.Destroy(); } else { bp = _debugger.SetBreakpoint(lineNum); var anchor = _editor.Document.CreateAnchor(position.Value.Line); anchor.Deleted += (sender, args) => bp.Destroy(); } } }