internal static bool Within(this Point referencePoint, UIElement referenceElement, FrameworkElement targetElement, bool ignoreVertical) { Point position = referenceElement.Translate(targetElement, referencePoint); return position.X > 0 && position.X < targetElement.ActualWidth && (ignoreVertical || (position.Y > 0 && position.Y < targetElement.ActualHeight) ); }