public void AutoRealign(NodeControl focusedControl = null) { var lastPosition = new Point(); if (focusedControl != null) { lastPosition = focusedControl.ViewModelNode.Location; } if (RealignFactory.RealignStyle == RealignStyle.Horizontal) { HorizontalRealign(); } else { VerticalRealign(); } if (focusedControl != null) { var currentPosintion = focusedControl.ViewModelNode.Location; var difference = currentPosintion.Subtract(lastPosition); MoveMap(-difference.X, -difference.Y); } }