diff --git a/src/Avalonia.Base/Media/PathGeometry.cs b/src/Avalonia.Base/Media/PathGeometry.cs index bdfbfadce4..c07535c00b 100644 --- a/src/Avalonia.Base/Media/PathGeometry.cs +++ b/src/Avalonia.Base/Media/PathGeometry.cs @@ -35,7 +35,7 @@ namespace Avalonia.Media /// public PathGeometry() { - _figures = new PathFigures(); + Figures = new PathFigures(); } /// diff --git a/tests/Avalonia.Base.UnitTests/Media/PathGeometryTests.cs b/tests/Avalonia.Base.UnitTests/Media/PathGeometryTests.cs new file mode 100644 index 0000000000..9648187e61 --- /dev/null +++ b/tests/Avalonia.Base.UnitTests/Media/PathGeometryTests.cs @@ -0,0 +1,32 @@ +using Avalonia.Media; +using Xunit; + +namespace Avalonia.Base.UnitTests.Media; + +public class PathGeometryTests +{ + [Fact] + public void PathGeometry_Triggers_Invalidation_On_Figures_Add() + { + var segment = new PolyLineSegment() + { + Points = [new Point(1, 1), new Point(2, 2)] + }; + + var figure = new PathFigure() + { + Segments = [segment], + IsClosed = false, + IsFilled = false, + }; + + var target = new PathGeometry(); + + var changed = false; + + target.Changed += (_, _) => { changed = true; }; + + target.Figures?.Add(figure); + Assert.True(changed); + } +}