Updated TileImageLoader and ImageFileCache for WinUI

This commit is contained in:
Clemens 2021-06-28 23:35:03 +02:00
parent 9ebc88204b
commit a9475f79fe
7 changed files with 90 additions and 75 deletions

View file

@ -38,6 +38,7 @@ namespace MapControl.Caching
}
rootDirectory = directory;
Debug.WriteLine("Created ImageFileCache in " + rootDirectory);
}
public Task Clean()

View file

@ -6,17 +6,11 @@ using System;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Threading;
namespace MapControl
{
public partial class Tile
{
public DispatcherOperation SetImageAsync(ImageSource image)
{
return Image.Dispatcher.InvokeAsync(() => SetImage(image));
}
public void SetImage(ImageSource image, bool fadeIn = true)
{
Pending = false;

View file

@ -6,11 +6,11 @@ using System;
using System.IO;
using System.Runtime.Caching;
using System.Threading.Tasks;
using System.Windows.Media;
using MapControl.Caching;
namespace MapControl
{
using Caching;
namespace Caching
{
public class ImageCacheItem
@ -58,7 +58,7 @@ namespace MapControl
{
var image = await ImageLoader.LoadImageAsync(buffer).ConfigureAwait(false);
await tile.SetImageAsync(image);
await tile.Image.Dispatcher.InvokeAsync(() => tile.SetImage(image));
}
}
@ -66,7 +66,7 @@ namespace MapControl
{
var image = await tileSource.LoadImageAsync(tile.XIndex, tile.Y, tile.ZoomLevel).ConfigureAwait(false);
await tile.SetImageAsync(image);
await tile.Image.Dispatcher.InvokeAsync(() => tile.SetImage(image));
}
private static Task<ImageCacheItem> GetCacheAsync(string cacheKey)