Update Tile class

This commit is contained in:
ClemensFischer 2022-11-19 23:59:17 +01:00
parent 5c17a1c36f
commit 44ba57e92b
4 changed files with 6 additions and 6 deletions

View file

@ -235,7 +235,7 @@ namespace MapControl
tile = new Tile(z, x, y);
var equivalentTile = Tiles.FirstOrDefault(
t => !t.Pending && t.ZoomLevel == z && t.Y == y && t.XIndex == tile.XIndex);
t => t.IsLoaded && t.ZoomLevel == z && t.Y == y && t.XIndex == tile.XIndex);
if (equivalentTile != null)
{

View file

@ -51,11 +51,11 @@ namespace MapControl
IsHitTestVisible = false // avoid touch capture issues
};
public bool Pending { get; set; } = true;
public bool IsLoaded { get; set; }
public void SetImageSource(ImageSource image, bool animateOpacity = true)
{
Pending = false;
IsLoaded = true;
Image.Source = image;
if (image != null && animateOpacity && MapBase.ImageFadeDuration > TimeSpan.Zero)

View file

@ -22,7 +22,7 @@ namespace MapControl
private class TileQueue : ConcurrentStack<Tile>
{
public TileQueue(IEnumerable<Tile> tiles)
: base(tiles.Where(tile => tile.Pending).Reverse())
: base(tiles.Where(tile => !tile.IsLoaded).Reverse())
{
}
@ -37,7 +37,7 @@ namespace MapControl
return false;
}
tile.Pending = false;
tile.IsLoaded = true;
return true;
}

View file

@ -82,7 +82,7 @@ namespace MapControl
if (!tile.Image.DispatcherQueue.TryEnqueue(DispatcherQueuePriority.Low, callback))
{
tile.Pending = true;
tile.IsLoaded = false;
tcs.TrySetResult();
}