/// <summary> /// Event raised when the user releases the left mouse-button. /// </summary> private void Control_MouseUp(object sender, MouseButtonEventArgs e) { if (e.ChangedButton == MouseButton.Left) { bool wasDragSelectionApplied = false; if (isDraggingSelectionRect) { // // Drag selection has ended, apply the 'selection rectangle'. // isDraggingSelectionRect = false; ApplyDragSelectionRect(); e.Handled = true; wasDragSelectionApplied = true; } if (isLeftMouseButtonDownOnCanvas) { isLeftMouseButtonDownOnCanvas = false; GridContainer.ReleaseMouseCapture(); e.Handled = true; } if (!wasDragSelectionApplied) { // // A click and release in empty space clears the selection. // listBox.SelectedItems.Clear(); } } currentMouseOperation = MouseOperation.None; }