diff --git a/MapControl/Shared/Tile.cs b/MapControl/Shared/Tile.cs index b4fbc907..2865ba66 100644 --- a/MapControl/Shared/Tile.cs +++ b/MapControl/Shared/Tile.cs @@ -40,26 +40,22 @@ namespace MapControl public Image Image { get; } = new Image { - Opacity = 0d, Stretch = Stretch.Fill, IsHitTestVisible = false // avoid touch capture issues }; public bool IsPending { get; set; } = true; - public void SetImageSource(ImageSource image, bool animateOpacity = true) + public void SetImageSource(ImageSource image) { IsPending = false; - Image.Source = image; - if (image != null && animateOpacity && MapBase.ImageFadeDuration > TimeSpan.Zero) + if (image != null && MapBase.ImageFadeDuration > TimeSpan.Zero) { - AnimateImageOpacity(); - } - else - { - Image.Opacity = 1d; + AnimateImageOpacity(image); } + + Image.Source = image; } private void BeginOpacityAnimation() diff --git a/MapControl/Shared/TileCollection.cs b/MapControl/Shared/TileCollection.cs index bbe28f41..d5ebf3b4 100644 --- a/MapControl/Shared/TileCollection.cs +++ b/MapControl/Shared/TileCollection.cs @@ -25,7 +25,8 @@ namespace MapControl if (equivalentTile != null) { - tile.SetImageSource(equivalentTile.Image.Source, false); // no opacity animation + tile.IsPending = false; + tile.Image.Source = equivalentTile.Image.Source; // no opacity animation } } diff --git a/MapControl/WPF/Tile.WPF.cs b/MapControl/WPF/Tile.WPF.cs index 732a7aa4..03c5ff83 100644 --- a/MapControl/WPF/Tile.WPF.cs +++ b/MapControl/WPF/Tile.WPF.cs @@ -11,9 +11,9 @@ namespace MapControl { public partial class Tile { - private void AnimateImageOpacity() + private void AnimateImageOpacity(ImageSource image) { - if (Image.Source is BitmapSource bitmap && !bitmap.IsFrozen && bitmap.IsDownloading) + if (image is BitmapSource bitmap && !bitmap.IsFrozen && bitmap.IsDownloading) { bitmap.DownloadCompleted += BitmapDownloadCompleted; bitmap.DownloadFailed += BitmapDownloadFailed; diff --git a/MapControl/WinUI/Tile.WinUI.cs b/MapControl/WinUI/Tile.WinUI.cs index 0248ddcf..e2b0a065 100644 --- a/MapControl/WinUI/Tile.WinUI.cs +++ b/MapControl/WinUI/Tile.WinUI.cs @@ -4,9 +4,11 @@ #if WINUI using Microsoft.UI.Xaml; +using Microsoft.UI.Xaml.Media; using Microsoft.UI.Xaml.Media.Imaging; #else using Windows.UI.Xaml; +using Windows.UI.Xaml.Media; using Windows.UI.Xaml.Media.Imaging; #endif @@ -14,9 +16,9 @@ namespace MapControl { public partial class Tile { - private void AnimateImageOpacity() + private void AnimateImageOpacity(ImageSource image) { - if (Image.Source is BitmapImage bitmap && bitmap.UriSource != null) + if (image is BitmapImage bitmap && bitmap.UriSource != null) { bitmap.ImageOpened += BitmapImageOpened; bitmap.ImageFailed += BitmapImageFailed;