private void ProcessScannerMoveChange(object sender, MoveState e) { navigationGroup.Invoke(new MethodInvoker(delegate { ResetNavigation(); if (e.IsStopped()) { SetInterfaceMoving(false); iconStop.IconState = ScannerIcon.IconStates.Active; if (MoveToOriginRequested) { ExecuteMoveToOrigin(); } else if (!HandleMovementQueue() && _isShotRequested) { ShootDSLR(); } return; } SetInterfaceMoving(true); if (e.MoveDirectionX == MoveState.MoveStates.MovingPositive) { iconRight.IconState = ScannerIcon.IconStates.Active; } else if (e.MoveDirectionX == MoveState.MoveStates.MovingNegative) { iconLeft.IconState = ScannerIcon.IconStates.Active; } if (e.MoveDirectionY == MoveState.MoveStates.MovingPositive) { iconUp.IconState = ScannerIcon.IconStates.Active; } else if (e.MoveDirectionY == MoveState.MoveStates.MovingNegative) { iconDown.IconState = ScannerIcon.IconStates.Active; } })); }