public virtual bool OnDragStart(Canvas canvas, float x, float y) { HittedResizeHandle = _handles.FirstOrDefault(h => h.HitTest(x, y)); if (HittedResizeHandle != null) { HittedResizeHandle.OnDragStart(canvas, x, y); } else { foreach (var policy in canvas.GetSnapPolicies()) { policy.InitSnap(canvas, GetSnapPoints(), new[] { this }); } } return(true); }