/// <summary> /// Is called when the left mouse button is pressed. /// </summary> /// <param name="e"></param> protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e) { HitTestResult result = VisualTreeHelper.HitTest(this, e.GetPosition(this)); var node = result.VisualHit.FindFirstAncestorOfType <NetworkViewNodeItem>(); if (node != null) { if (CaptureMouse()) { _mouseDraggingNode = node; _algorithm.Freeze(node.Content as INode); e.Handled = true; } } else { base.OnMouseLeftButtonDown(e); } }