Avalonia InvalidateGeometry on new Path Figures

This commit is contained in:
ClemensFischer 2024-05-26 00:12:32 +02:00
parent ddc11bcc8a
commit e49ca0b79e
5 changed files with 19 additions and 8 deletions

View file

@ -2,6 +2,7 @@
// Copyright © 2024 Clemens Fischer // Copyright © 2024 Clemens Fischer
// Licensed under the Microsoft Public License (Ms-PL) // Licensed under the Microsoft Public License (Ms-PL)
using Avalonia.Controls;
using Avalonia.Controls.Shapes; using Avalonia.Controls.Shapes;
using Avalonia.Media; using Avalonia.Media;
using System.Collections; using System.Collections;
@ -66,6 +67,12 @@ namespace MapControl
UpdateData(); UpdateData();
} }
protected void SetPathFigures(PathFigures pathFigures)
{
((PathGeometry)Data).Figures = pathFigures;
InvalidateGeometry();
}
protected void AddPolylinePoints(PathFigures pathFigures, IEnumerable<Location> locations, double longitudeOffset, bool closed) protected void AddPolylinePoints(PathFigures pathFigures, IEnumerable<Location> locations, double longitudeOffset, bool closed)
{ {
if (locations.Count() >= 2) if (locations.Count() >= 2)

View file

@ -57,10 +57,7 @@ namespace MapControl
protected override void UpdateData() protected override void UpdateData()
{ {
((PathGeometry)Data).Figures = GetPathFigures(Locations, true); SetPathFigures(GetPathFigures(Locations, true));
#if AVALONIA
InvalidateGeometry();
#endif
} }
} }
} }

View file

@ -57,10 +57,7 @@ namespace MapControl
protected override void UpdateData() protected override void UpdateData()
{ {
((PathGeometry)Data).Figures = GetPathFigures(Locations, false); SetPathFigures(GetPathFigures(Locations, true));
#if AVALONIA
InvalidateGeometry();
#endif
} }
} }
} }

View file

@ -84,6 +84,11 @@ namespace MapControl
return true; return true;
} }
protected void SetPathFigures(PathFigureCollection pathFigures)
{
((PathGeometry)Data).Figures = pathFigures;
}
protected void AddPolylinePoints(PathFigureCollection pathFigures, IEnumerable<Location> locations, double longitudeOffset, bool closed) protected void AddPolylinePoints(PathFigureCollection pathFigures, IEnumerable<Location> locations, double longitudeOffset, bool closed)
{ {
if (locations.Count() >= 2) if (locations.Count() >= 2)

View file

@ -58,6 +58,11 @@ namespace MapControl
UpdateData(); UpdateData();
} }
protected void SetPathFigures(PathFigureCollection pathFigures)
{
((PathGeometry)Data).Figures = pathFigures;
}
protected void AddPolylinePoints(PathFigureCollection pathFigures, IEnumerable<Location> locations, double longitudeOffset, bool closed) protected void AddPolylinePoints(PathFigureCollection pathFigures, IEnumerable<Location> locations, double longitudeOffset, bool closed)
{ {
if (locations.Count() >= 2) if (locations.Count() >= 2)