diff --git a/src/Avalonia.Input/InputExtensions.cs b/src/Avalonia.Input/InputExtensions.cs index 5d80653322..35ffeca7bb 100644 --- a/src/Avalonia.Input/InputExtensions.cs +++ b/src/Avalonia.Input/InputExtensions.cs @@ -24,13 +24,14 @@ namespace Avalonia.Input public static IEnumerable GetInputElementsAt(this IInputElement element, Point p) { Contract.Requires(element != null); - var transformedBounds = BoundsTracker.GetTransformedBounds((Visual)element); if (element.IsVisible && element.IsHitTestVisible && element.IsEnabledCore) { - if (element.VisualChildren.Any()) + bool containsPoint = BoundsTracker.GetTransformedBounds((Visual)element).Contains(p); + + if ((containsPoint || !element.ClipToBounds) && element.VisualChildren.Any()) { foreach (var child in ZSort(element.VisualChildren.OfType())) { @@ -41,7 +42,7 @@ namespace Avalonia.Input } } - if (transformedBounds.Contains(p)) + if (containsPoint) { yield return element; }