diff --git a/src/Avalonia.Base/Rendering/SceneGraph/RectangleNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/RectangleNode.cs index 7b79c446f9..a9d1bf96e5 100644 --- a/src/Avalonia.Base/Rendering/SceneGraph/RectangleNode.cs +++ b/src/Avalonia.Base/Rendering/SceneGraph/RectangleNode.cs @@ -103,13 +103,13 @@ namespace Avalonia.Rendering.SceneGraph if (Brush != null) { var rect = Rect.Rect.Inflate((Pen?.Thickness / 2) ?? 0); - return rect.Contains(p); + return rect.ContainsExclusive(p); } else { var borderRect = Rect.Rect.Inflate((Pen?.Thickness / 2) ?? 0); var emptyRect = Rect.Rect.Deflate((Pen?.Thickness / 2) ?? 0); - return borderRect.Contains(p) && !emptyRect.Contains(p); + return borderRect.ContainsExclusive(p) && !emptyRect.ContainsExclusive(p); } } diff --git a/tests/Avalonia.Base.UnitTests/Rendering/CompositorHitTestingTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/CompositorHitTestingTests.cs index a584a859ec..02012bf62b 100644 --- a/tests/Avalonia.Base.UnitTests/Rendering/CompositorHitTestingTests.cs +++ b/tests/Avalonia.Base.UnitTests/Rendering/CompositorHitTestingTests.cs @@ -414,7 +414,7 @@ public class CompositorHitTestingTests : CompositorTestsBase { using (var s = new CompositorServices(new Size(200, 200))) { - Rectangle targetRectangle; + Border targetRectangle; var stackPanel = new StackPanel { @@ -422,8 +422,8 @@ public class CompositorHitTestingTests : CompositorTestsBase HorizontalAlignment = HorizontalAlignment.Left, Children = { - new Rectangle { Width = 10, Height = 10, Fill= Brushes.Red}, - { targetRectangle = new Rectangle { Width = 10, Height = 10, Fill = Brushes.Green} } + new Border { Width = 10, Height = 10, Background= Brushes.Red}, + { targetRectangle = new Border { Width = 10, Height = 10, Background = Brushes.Green} } } }; diff --git a/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs b/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs index 7800ddfc8a..d3fdbb63db 100644 --- a/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs +++ b/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs @@ -542,11 +542,11 @@ namespace Avalonia.Base.UnitTests.Rendering { using (TestApplication()) { - Rectangle targetRectangle; + Border targetRectangle; var root = new TestRoot { - Width = 300, + Width = 50, Height = 200, Child = new StackPanel { @@ -554,8 +554,8 @@ namespace Avalonia.Base.UnitTests.Rendering HorizontalAlignment = HorizontalAlignment.Left, Children = { - new Rectangle { Width = 10, Height = 10, Fill = Brushes.Red}, - { targetRectangle = new Rectangle { Width = 10, Height = 10, Fill = Brushes.Green} } + new Border { Width = 50, Height = 50, Background = Brushes.Red}, + { targetRectangle = new Border { Width = 50, Height = 50, Background = Brushes.Green} } } } }; @@ -564,7 +564,7 @@ namespace Avalonia.Base.UnitTests.Rendering root.Measure(Size.Infinity); root.Arrange(new Rect(root.DesiredSize)); - var result = root.Renderer.HitTest(new Point(5, 10), root, null); + var result = root.Renderer.HitTest(new Point(25, 50), root, null); Assert.Equal(new[] { targetRectangle }, result); } }