Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        public static void NudgeFree(this SpacialElement el)
        {
            var loc = GetNudgeLocation(el);

            if (loc != null)
            {
                el.MoveTo(loc.Left, loc.Top);
            }
        }