public static NudgeEvent NudgeFree(this SpacialElement el, IRectangularF desiredLocation = null, float optimalAngle = 0, int?z = null) { var loc = GetNudgeLocation(el, desiredLocation, optimalAngle, z); if (loc != null) { if (el is IHaveMassBounds == false) { el.MoveTo(loc.Left, loc.Top, z); } else { var elBounds = el.EffectiveBounds(); var dx = el.Left - elBounds.Left; var dy = el.Top - elBounds.Top; el.MoveTo(loc.Left + dx, loc.Top + dy, z); } var ev = new NudgeEvent() { Element = el, Success = true }; OnNudge.Fire(ev); return(ev); } else { var ev = new NudgeEvent() { Element = el, Success = false }; OnNudge.Fire(ev); return(ev); } }
public static void NudgeFree(this SpacialElement el) { var loc = GetNudgeLocation(el); if (loc != null) { el.MoveTo(loc.Left, loc.Top); } }