From 81eabef257e67bbcd58ea2b7ecbb741181771127 Mon Sep 17 00:00:00 2001 From: ClemensFischer Date: Tue, 19 Aug 2025 19:43:02 +0200 Subject: [PATCH] Cleanup of global usings --- .../DependencyPropertyHelper.Avalonia.cs | 5 ++- MapControl/Avalonia/ImageLoader.Avalonia.cs | 6 +++- .../Avalonia/LocationAnimator.Avalonia.cs | 4 ++- MapControl/Avalonia/Map.Avalonia.cs | 4 ++- MapControl/Avalonia/MapBase.Avalonia.cs | 31 ++++++------------- .../Avalonia/MapContentControl.Avalonia.cs | 5 ++- MapControl/Avalonia/MapGraticule.Avalonia.cs | 6 +++- MapControl/Avalonia/MapImageLayer.Avalonia.cs | 4 ++- MapControl/Avalonia/MapItem.Avalonia.cs | 6 +++- .../Avalonia/MapItemsControl.Avalonia.cs | 9 ++++-- MapControl/Avalonia/MapPanel.Avalonia.cs | 6 +++- MapControl/Avalonia/MapPath.Avalonia.cs | 4 ++- MapControl/Avalonia/MapPolypoint.Avalonia.cs | 4 ++- MapControl/Avalonia/PushpinBorder.Avalonia.cs | 5 ++- MapControl/Avalonia/Tile.Avalonia.cs | 5 ++- .../Avalonia/TileImageLoader.Avalonia.cs | 4 ++- MapControl/Avalonia/ViewTransform.Avalonia.cs | 4 ++- .../Shared/AutoEquirectangularProjection.cs | 2 ++ .../Shared/AzimuthalEquidistantProjection.cs | 2 ++ MapControl/Shared/AzimuthalProjection.cs | 2 ++ MapControl/Shared/DispatcherTimerHelper.cs | 3 ++ .../Shared/EquirectangularProjection.cs | 2 ++ MapControl/Shared/FilePath.cs | 8 +++-- MapControl/Shared/GeoImage.cs | 26 +++++++++++++++- MapControl/Shared/GnomonicProjection.cs | 2 ++ MapControl/Shared/GroundOverlay.cs | 3 ++ MapControl/Shared/Map.cs | 2 ++ MapControl/Shared/MapBase.MapLayer.cs | 2 ++ MapControl/Shared/MapBase.cs | 2 ++ MapControl/Shared/MapBorderPanel.cs | 2 ++ MapControl/Shared/MapGraticule.cs | 4 +++ MapControl/Shared/MapImageLayer.cs | 5 +++ MapControl/Shared/MapItem.cs | 5 +-- MapControl/Shared/MapItemsControl.cs | 12 ++++--- MapControl/Shared/MapPanel.cs | 5 +++ MapControl/Shared/MapPath.cs | 2 ++ MapControl/Shared/MapProjection.cs | 2 ++ MapControl/Shared/MapScale.cs | 5 +++ MapControl/Shared/MapTileLayer.cs | 3 ++ MapControl/Shared/MapTileLayerBase.cs | 4 +++ MapControl/Shared/OrthographicProjection.cs | 2 ++ .../Shared/PolarStereographicProjection.cs | 2 ++ MapControl/Shared/PushpinBorder.cs | 4 +++ MapControl/Shared/StereographicProjection.cs | 2 ++ MapControl/Shared/Tile.cs | 3 ++ .../Shared/TransverseMercatorProjection.cs | 2 ++ MapControl/Shared/TypeConverters.cs | 2 ++ MapControl/Shared/ViewTransform.cs | 2 ++ MapControl/Shared/WebMercatorProjection.cs | 2 ++ MapControl/Shared/WmsImageLayer.cs | 2 ++ MapControl/Shared/WmtsCapabilities.cs | 2 ++ MapControl/Shared/WmtsTileLayer.cs | 3 ++ MapControl/Shared/WmtsTileMatrix.cs | 2 ++ MapControl/Shared/WmtsTileMatrixLayer.cs | 4 +++ MapControl/Shared/WorldMercatorProjection.cs | 2 ++ MapControl/WPF/MapItemsControl.WPF.cs | 4 +-- MapControl/WinUI/MapItemsControl.WinUI.cs | 4 +-- 57 files changed, 207 insertions(+), 54 deletions(-) diff --git a/MapControl/Avalonia/DependencyPropertyHelper.Avalonia.cs b/MapControl/Avalonia/DependencyPropertyHelper.Avalonia.cs index b09abac5..a286d156 100644 --- a/MapControl/Avalonia/DependencyPropertyHelper.Avalonia.cs +++ b/MapControl/Avalonia/DependencyPropertyHelper.Avalonia.cs @@ -1,4 +1,7 @@ -using System; +using Avalonia; +using Avalonia.Controls; +using Avalonia.Data; +using System; #pragma warning disable AVP1001 diff --git a/MapControl/Avalonia/ImageLoader.Avalonia.cs b/MapControl/Avalonia/ImageLoader.Avalonia.cs index 17a67fa9..27e71872 100644 --- a/MapControl/Avalonia/ImageLoader.Avalonia.cs +++ b/MapControl/Avalonia/ImageLoader.Avalonia.cs @@ -1,4 +1,8 @@ -using System; +using Avalonia; +using Avalonia.Media; +using Avalonia.Media.Imaging; +using Avalonia.Platform; +using System; using System.IO; using System.Threading.Tasks; diff --git a/MapControl/Avalonia/LocationAnimator.Avalonia.cs b/MapControl/Avalonia/LocationAnimator.Avalonia.cs index 4b86c8e7..fa383681 100644 --- a/MapControl/Avalonia/LocationAnimator.Avalonia.cs +++ b/MapControl/Avalonia/LocationAnimator.Avalonia.cs @@ -1,4 +1,6 @@ -namespace MapControl +using Avalonia.Animation; + +namespace MapControl { public class LocationAnimator : InterpolatingAnimator { diff --git a/MapControl/Avalonia/Map.Avalonia.cs b/MapControl/Avalonia/Map.Avalonia.cs index 45ef7b89..7c9a219b 100644 --- a/MapControl/Avalonia/Map.Avalonia.cs +++ b/MapControl/Avalonia/Map.Avalonia.cs @@ -1,4 +1,6 @@ -using System; +using Avalonia; +using Avalonia.Input; +using System; namespace MapControl { diff --git a/MapControl/Avalonia/MapBase.Avalonia.cs b/MapControl/Avalonia/MapBase.Avalonia.cs index 89d3a2b5..a225c6af 100644 --- a/MapControl/Avalonia/MapBase.Avalonia.cs +++ b/MapControl/Avalonia/MapBase.Avalonia.cs @@ -1,29 +1,16 @@ -global using Avalonia; -global using Avalonia.Animation; -global using Avalonia.Animation.Easings; -global using Avalonia.Controls; -global using Avalonia.Controls.Documents; -global using Avalonia.Data; -global using Avalonia.Data.Converters; -global using Avalonia.Input; -global using Avalonia.Interactivity; -global using Avalonia.Media; -global using Avalonia.Media.Imaging; -global using Avalonia.Platform; -global using Avalonia.Styling; -global using Avalonia.Threading; -global using DependencyObject = Avalonia.AvaloniaObject; -global using DependencyProperty = Avalonia.AvaloniaProperty; +global using DependencyProperty = Avalonia.AvaloniaProperty; global using FrameworkElement = Avalonia.Controls.Control; -global using HorizontalAlignment = Avalonia.Layout.HorizontalAlignment; -global using VerticalAlignment = Avalonia.Layout.VerticalAlignment; global using Brush = Avalonia.Media.IBrush; global using ImageSource = Avalonia.Media.IImage; -global using BitmapSource = Avalonia.Media.Imaging.Bitmap; -global using PathFigureCollection = Avalonia.Media.PathFigures; -global using PointCollection = System.Collections.Generic.List; global using PropertyPath = System.String; - +using Avalonia; +using Avalonia.Animation; +using Avalonia.Animation.Easings; +using Avalonia.Controls; +using Avalonia.Controls.Documents; +using Avalonia.Data; +using Avalonia.Media; +using Avalonia.Styling; using System.Threading; using System.Threading.Tasks; diff --git a/MapControl/Avalonia/MapContentControl.Avalonia.cs b/MapControl/Avalonia/MapContentControl.Avalonia.cs index 766c75c8..793e9b1c 100644 --- a/MapControl/Avalonia/MapContentControl.Avalonia.cs +++ b/MapControl/Avalonia/MapContentControl.Avalonia.cs @@ -1,4 +1,7 @@ -namespace MapControl +using Avalonia; +using Avalonia.Controls; + +namespace MapControl { /// /// ContentControl placed on a MapPanel at a geographic location specified by the Location property. diff --git a/MapControl/Avalonia/MapGraticule.Avalonia.cs b/MapControl/Avalonia/MapGraticule.Avalonia.cs index 35be150d..1dda6e08 100644 --- a/MapControl/Avalonia/MapGraticule.Avalonia.cs +++ b/MapControl/Avalonia/MapGraticule.Avalonia.cs @@ -1,4 +1,8 @@ -using System.Collections.Generic; +using Avalonia; +using Avalonia.Controls; +using Avalonia.Controls.Documents; +using Avalonia.Media; +using System.Collections.Generic; using System.Globalization; using System.Linq; diff --git a/MapControl/Avalonia/MapImageLayer.Avalonia.cs b/MapControl/Avalonia/MapImageLayer.Avalonia.cs index 3a16a6aa..6a4e5029 100644 --- a/MapControl/Avalonia/MapImageLayer.Avalonia.cs +++ b/MapControl/Avalonia/MapImageLayer.Avalonia.cs @@ -1,4 +1,6 @@ -using System.Threading.Tasks; +using Avalonia.Animation; +using Avalonia.Styling; +using System.Threading.Tasks; namespace MapControl { diff --git a/MapControl/Avalonia/MapItem.Avalonia.cs b/MapControl/Avalonia/MapItem.Avalonia.cs index 3c35625e..d78a8275 100644 --- a/MapControl/Avalonia/MapItem.Avalonia.cs +++ b/MapControl/Avalonia/MapItem.Avalonia.cs @@ -1,4 +1,8 @@ -namespace MapControl +using Avalonia; +using Avalonia.Controls; +using Avalonia.Input; + +namespace MapControl { public partial class MapItem { diff --git a/MapControl/Avalonia/MapItemsControl.Avalonia.cs b/MapControl/Avalonia/MapItemsControl.Avalonia.cs index c8f8a6c3..2fd4e8b6 100644 --- a/MapControl/Avalonia/MapItemsControl.Avalonia.cs +++ b/MapControl/Avalonia/MapItemsControl.Avalonia.cs @@ -1,5 +1,8 @@ -using Avalonia.Controls.Presenters; +using Avalonia.Controls; +using Avalonia.Controls.Presenters; using Avalonia.Controls.Templates; +using Avalonia.Input; +using Avalonia.Media; namespace MapControl { @@ -40,13 +43,13 @@ namespace MapControl protected override void PrepareContainerForItemOverride(Control container, object item, int index) { base.PrepareContainerForItemOverride(container, item, index); - PrepareContainer(container, item); + PrepareContainer((MapItem)container, item); } protected override void ClearContainerForItemOverride(Control container) { base.ClearContainerForItemOverride(container); - ClearContainer(container); + ClearContainer((MapItem)container); } internal void UpdateSelection(MapItem mapItem, PointerEventArgs e) diff --git a/MapControl/Avalonia/MapPanel.Avalonia.cs b/MapControl/Avalonia/MapPanel.Avalonia.cs index 36f6f056..b419beff 100644 --- a/MapControl/Avalonia/MapPanel.Avalonia.cs +++ b/MapControl/Avalonia/MapPanel.Avalonia.cs @@ -1,4 +1,8 @@ -namespace MapControl +using Avalonia; +using Avalonia.Controls; +using Avalonia.Media; + +namespace MapControl { public partial class MapPanel { diff --git a/MapControl/Avalonia/MapPath.Avalonia.cs b/MapControl/Avalonia/MapPath.Avalonia.cs index 63265b33..ef3d3618 100644 --- a/MapControl/Avalonia/MapPath.Avalonia.cs +++ b/MapControl/Avalonia/MapPath.Avalonia.cs @@ -1,4 +1,6 @@ -using Avalonia.Controls.Shapes; +using Avalonia; +using Avalonia.Controls.Shapes; +using Avalonia.Media; namespace MapControl { diff --git a/MapControl/Avalonia/MapPolypoint.Avalonia.cs b/MapControl/Avalonia/MapPolypoint.Avalonia.cs index e99a906c..1776902e 100644 --- a/MapControl/Avalonia/MapPolypoint.Avalonia.cs +++ b/MapControl/Avalonia/MapPolypoint.Avalonia.cs @@ -1,4 +1,6 @@ -using System; +using Avalonia; +using Avalonia.Media; +using System; using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; diff --git a/MapControl/Avalonia/PushpinBorder.Avalonia.cs b/MapControl/Avalonia/PushpinBorder.Avalonia.cs index d9bddfac..4266431e 100644 --- a/MapControl/Avalonia/PushpinBorder.Avalonia.cs +++ b/MapControl/Avalonia/PushpinBorder.Avalonia.cs @@ -1,4 +1,7 @@ -using System; +using Avalonia; +using Avalonia.Controls; +using Avalonia.Media; +using System; namespace MapControl { diff --git a/MapControl/Avalonia/Tile.Avalonia.cs b/MapControl/Avalonia/Tile.Avalonia.cs index cb797c1d..accd4eca 100644 --- a/MapControl/Avalonia/Tile.Avalonia.cs +++ b/MapControl/Avalonia/Tile.Avalonia.cs @@ -1,4 +1,7 @@ -using System; +using Avalonia; +using Avalonia.Animation; +using Avalonia.Styling; +using System; namespace MapControl { diff --git a/MapControl/Avalonia/TileImageLoader.Avalonia.cs b/MapControl/Avalonia/TileImageLoader.Avalonia.cs index 715b67ed..8c8fb399 100644 --- a/MapControl/Avalonia/TileImageLoader.Avalonia.cs +++ b/MapControl/Avalonia/TileImageLoader.Avalonia.cs @@ -1,4 +1,6 @@ -using System; +using Avalonia.Media; +using Avalonia.Threading; +using System; using System.Threading.Tasks; namespace MapControl diff --git a/MapControl/Avalonia/ViewTransform.Avalonia.cs b/MapControl/Avalonia/ViewTransform.Avalonia.cs index 9e623b67..aa6ebd04 100644 --- a/MapControl/Avalonia/ViewTransform.Avalonia.cs +++ b/MapControl/Avalonia/ViewTransform.Avalonia.cs @@ -1,4 +1,6 @@ -namespace MapControl +using Avalonia; + +namespace MapControl { public partial class ViewTransform { diff --git a/MapControl/Shared/AutoEquirectangularProjection.cs b/MapControl/Shared/AutoEquirectangularProjection.cs index 2f52157c..0447749d 100644 --- a/MapControl/Shared/AutoEquirectangularProjection.cs +++ b/MapControl/Shared/AutoEquirectangularProjection.cs @@ -1,6 +1,8 @@ using System; #if WPF using System.Windows; +#elif AVALONIA +using Avalonia; #endif namespace MapControl diff --git a/MapControl/Shared/AzimuthalEquidistantProjection.cs b/MapControl/Shared/AzimuthalEquidistantProjection.cs index 86d62c9b..fe31e90c 100644 --- a/MapControl/Shared/AzimuthalEquidistantProjection.cs +++ b/MapControl/Shared/AzimuthalEquidistantProjection.cs @@ -1,6 +1,8 @@ using System; #if WPF using System.Windows; +#elif AVALONIA +using Avalonia; #endif namespace MapControl diff --git a/MapControl/Shared/AzimuthalProjection.cs b/MapControl/Shared/AzimuthalProjection.cs index e63ee905..48dad081 100644 --- a/MapControl/Shared/AzimuthalProjection.cs +++ b/MapControl/Shared/AzimuthalProjection.cs @@ -1,5 +1,7 @@ #if WPF using System.Windows; +#elif AVALONIA +using Avalonia; #endif namespace MapControl diff --git a/MapControl/Shared/DispatcherTimerHelper.cs b/MapControl/Shared/DispatcherTimerHelper.cs index d6276be5..b54a3b41 100644 --- a/MapControl/Shared/DispatcherTimerHelper.cs +++ b/MapControl/Shared/DispatcherTimerHelper.cs @@ -6,6 +6,9 @@ using Windows.UI.Xaml; #elif WINUI global using DispatcherTimer = Microsoft.UI.Dispatching.DispatcherQueueTimer; using Microsoft.UI.Xaml; +#elif AVALONIA +using DependencyObject = Avalonia.AvaloniaObject; +using Avalonia.Threading; #endif using System; diff --git a/MapControl/Shared/EquirectangularProjection.cs b/MapControl/Shared/EquirectangularProjection.cs index 7a32fec9..10178dad 100644 --- a/MapControl/Shared/EquirectangularProjection.cs +++ b/MapControl/Shared/EquirectangularProjection.cs @@ -1,6 +1,8 @@ using System; #if WPF using System.Windows; +#elif AVALONIA +using Avalonia; #endif namespace MapControl diff --git a/MapControl/Shared/FilePath.cs b/MapControl/Shared/FilePath.cs index 28116629..506bda90 100644 --- a/MapControl/Shared/FilePath.cs +++ b/MapControl/Shared/FilePath.cs @@ -1,13 +1,15 @@ -namespace MapControl +using System.IO; + +namespace MapControl { public static class FilePath { public static string GetFullPath(string path) { #if NET6_0_OR_GREATER - return System.IO.Path.GetFullPath(path, System.AppDomain.CurrentDomain.BaseDirectory); + return Path.GetFullPath(path, System.AppDomain.CurrentDomain.BaseDirectory); #else - return System.IO.Path.GetFullPath(path); + return Path.GetFullPath(path); #endif } } diff --git a/MapControl/Shared/GeoImage.cs b/MapControl/Shared/GeoImage.cs index 64b0e71a..b2e3a18b 100644 --- a/MapControl/Shared/GeoImage.cs +++ b/MapControl/Shared/GeoImage.cs @@ -22,7 +22,11 @@ using Microsoft.UI.Xaml.Media; using Microsoft.UI.Xaml.Media.Imaging; using Shape = Microsoft.UI.Xaml.Shapes.Shape; #elif AVALONIA +using Avalonia; +using Avalonia.Controls; +using Avalonia.Media; using Shape = Avalonia.Controls.Shapes.Shape; +using BitmapSource = Avalonia.Media.Imaging.Bitmap; #endif namespace MapControl @@ -43,6 +47,26 @@ namespace MapControl LatLonBox = projection != null ? new LatLonBox(projection.MapToBoundingBox(new Rect(p1, p2))) : new LatLonBox(p1.Y, p1.X, p2.Y, p2.X); + +#if DEBUG && NET6_0_OR_GREATER && !AVALONIA + System.Diagnostics.Debug.WriteLine( + string.Create(CultureInfo.InvariantCulture, + $"proj {projection?.CrsId ?? "-"}\n" + + $"SizeX {bitmap.PixelWidth}\n" + + $"SizeY {bitmap.PixelHeight}\n" + + $"M11 {transform.M11}\n" + + $"M22 {transform.M22}\n" + + $"OfsX {transform.OffsetX}\n" + + $"OfsY {transform.OffsetY}\n" + + $"X1 {p1.X}\n" + + $"Y1 {p1.Y}\n" + + $"X2 {p2.X}\n" + + $"Y2 {p2.Y}\n" + + $"West {LatLonBox.West}\n" + + $"South {LatLonBox.South}\n" + + $"East {LatLonBox.East}\n" + + $"North {LatLonBox.North}\n")); +#endif } public BitmapSource BitmapSource { get; } @@ -119,7 +143,7 @@ namespace MapControl private static async Task LoadGeoBitmap(string sourcePath) { - var ext = Path.GetExtension(sourcePath); + var ext = System.IO.Path.GetExtension(sourcePath); if (ext.Length >= 4) { diff --git a/MapControl/Shared/GnomonicProjection.cs b/MapControl/Shared/GnomonicProjection.cs index 26781707..f50dfca2 100644 --- a/MapControl/Shared/GnomonicProjection.cs +++ b/MapControl/Shared/GnomonicProjection.cs @@ -1,6 +1,8 @@ using System; #if WPF using System.Windows; +#elif AVALONIA +using Avalonia; #endif namespace MapControl diff --git a/MapControl/Shared/GroundOverlay.cs b/MapControl/Shared/GroundOverlay.cs index 00786493..e5c49480 100644 --- a/MapControl/Shared/GroundOverlay.cs +++ b/MapControl/Shared/GroundOverlay.cs @@ -19,6 +19,9 @@ using Windows.UI.Xaml.Media; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Media; +#elif AVALONIA +using Avalonia.Controls; +using Avalonia.Media; #endif namespace MapControl diff --git a/MapControl/Shared/Map.cs b/MapControl/Shared/Map.cs index bfd0d253..4a3dc1b0 100644 --- a/MapControl/Shared/Map.cs +++ b/MapControl/Shared/Map.cs @@ -5,6 +5,8 @@ using System.Windows; using Windows.UI.Xaml; #elif WINUI using Microsoft.UI.Xaml; +#elif AVALONIA +using Avalonia; #endif namespace MapControl diff --git a/MapControl/Shared/MapBase.MapLayer.cs b/MapControl/Shared/MapBase.MapLayer.cs index 9c55d0c5..e8fae7e3 100644 --- a/MapControl/Shared/MapBase.MapLayer.cs +++ b/MapControl/Shared/MapBase.MapLayer.cs @@ -12,6 +12,8 @@ using Windows.UI.Xaml.Media; #elif WINUI using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Media; +#elif AVALONIA +using Avalonia.Controls; #endif namespace MapControl diff --git a/MapControl/Shared/MapBase.cs b/MapControl/Shared/MapBase.cs index 2363e0e0..9d4daa6e 100644 --- a/MapControl/Shared/MapBase.cs +++ b/MapControl/Shared/MapBase.cs @@ -8,6 +8,8 @@ using Windows.UI.Xaml.Media; #elif WINUI using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Media; +#elif AVALONIA +using Avalonia; #endif namespace MapControl diff --git a/MapControl/Shared/MapBorderPanel.cs b/MapControl/Shared/MapBorderPanel.cs index 973817eb..f99dc0b0 100644 --- a/MapControl/Shared/MapBorderPanel.cs +++ b/MapControl/Shared/MapBorderPanel.cs @@ -4,6 +4,8 @@ using System.Windows; using Windows.UI.Xaml; #elif WINUI using Microsoft.UI.Xaml; +#elif AVALONIA +using Avalonia; #endif namespace MapControl diff --git a/MapControl/Shared/MapGraticule.cs b/MapControl/Shared/MapGraticule.cs index 6f4bcb13..72188be3 100644 --- a/MapControl/Shared/MapGraticule.cs +++ b/MapControl/Shared/MapGraticule.cs @@ -11,6 +11,10 @@ using Windows.UI.Xaml.Media; #elif WINUI using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Media; +#elif AVALONIA +using Avalonia; +using Avalonia.Media; +using PathFigureCollection = Avalonia.Media.PathFigures; #endif namespace MapControl diff --git a/MapControl/Shared/MapImageLayer.cs b/MapControl/Shared/MapImageLayer.cs index b1038113..5b7454a9 100644 --- a/MapControl/Shared/MapImageLayer.cs +++ b/MapControl/Shared/MapImageLayer.cs @@ -14,6 +14,11 @@ using Windows.UI.Xaml.Media; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Media; +#elif AVALONIA +using Avalonia; +using Avalonia.Controls; +using Avalonia.Media; +using Avalonia.Threading; #endif namespace MapControl diff --git a/MapControl/Shared/MapItem.cs b/MapControl/Shared/MapItem.cs index de39ed47..8af6c689 100644 --- a/MapControl/Shared/MapItem.cs +++ b/MapControl/Shared/MapItem.cs @@ -7,10 +7,11 @@ using Windows.UI.Xaml.Media; #elif WINUI using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Media; +#elif AVALONIA +using Avalonia.Controls; +using Avalonia.Media; #endif -using System; - namespace MapControl { /// diff --git a/MapControl/Shared/MapItemsControl.cs b/MapControl/Shared/MapItemsControl.cs index 8842f792..d4842afe 100644 --- a/MapControl/Shared/MapItemsControl.cs +++ b/MapControl/Shared/MapItemsControl.cs @@ -11,6 +11,10 @@ using Windows.UI.Xaml.Data; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Data; +#elif AVALONIA +using Avalonia; +using Avalonia.Controls; +using Avalonia.Data; #endif namespace MapControl @@ -118,18 +122,18 @@ namespace MapControl } } - private void PrepareContainer(DependencyObject container, object item) + private void PrepareContainer(MapItem mapItem, object item) { - if (LocationMemberPath != null && container is MapItem mapItem) + if (LocationMemberPath != null) { mapItem.SetBinding(MapItem.LocationProperty, new Binding { Source = item, Path = new PropertyPath(LocationMemberPath) }); } } - private void ClearContainer(DependencyObject container) + private void ClearContainer(MapItem mapItem) { - if (LocationMemberPath != null && container is MapItem mapItem) + if (LocationMemberPath != null) { mapItem.ClearValue(MapItem.LocationProperty); } diff --git a/MapControl/Shared/MapPanel.cs b/MapControl/Shared/MapPanel.cs index b7240084..48b542dd 100644 --- a/MapControl/Shared/MapPanel.cs +++ b/MapControl/Shared/MapPanel.cs @@ -13,6 +13,11 @@ using Windows.Foundation; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Media; +#elif AVALONIA +using Avalonia; +using Avalonia.Controls; +using Avalonia.Layout; +using Avalonia.Media; #endif /// diff --git a/MapControl/Shared/MapPath.cs b/MapControl/Shared/MapPath.cs index 19b0dd20..bc28745d 100644 --- a/MapControl/Shared/MapPath.cs +++ b/MapControl/Shared/MapPath.cs @@ -4,6 +4,8 @@ using System.Windows; using Windows.UI.Xaml; #elif WINUI using Microsoft.UI.Xaml; +#elif AVALONIA +using Avalonia; #endif namespace MapControl diff --git a/MapControl/Shared/MapProjection.cs b/MapControl/Shared/MapProjection.cs index 5ea08bd5..953a95cf 100644 --- a/MapControl/Shared/MapProjection.cs +++ b/MapControl/Shared/MapProjection.cs @@ -1,6 +1,8 @@ using System; #if WPF using System.Windows; +#elif AVALONIA +using Avalonia; #endif namespace MapControl diff --git a/MapControl/Shared/MapScale.cs b/MapControl/Shared/MapScale.cs index 11ca178c..e37ed603 100644 --- a/MapControl/Shared/MapScale.cs +++ b/MapControl/Shared/MapScale.cs @@ -21,7 +21,12 @@ using Microsoft.UI.Xaml.Data; using Microsoft.UI.Xaml.Media; using Microsoft.UI.Xaml.Shapes; #elif AVALONIA +using Avalonia; +using Avalonia.Controls; using Avalonia.Controls.Shapes; +using Avalonia.Data; +using Avalonia.Layout; +using PointCollection = System.Collections.Generic.List; #endif namespace MapControl diff --git a/MapControl/Shared/MapTileLayer.cs b/MapControl/Shared/MapTileLayer.cs index 7eb3c7b3..9b2018f6 100644 --- a/MapControl/Shared/MapTileLayer.cs +++ b/MapControl/Shared/MapTileLayer.cs @@ -11,6 +11,9 @@ using Windows.UI.Xaml.Media; using Windows.Foundation; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Media; +#elif AVALONIA +using Avalonia; +using Avalonia.Media; #endif namespace MapControl diff --git a/MapControl/Shared/MapTileLayerBase.cs b/MapControl/Shared/MapTileLayerBase.cs index 26fbc784..d390e302 100644 --- a/MapControl/Shared/MapTileLayerBase.cs +++ b/MapControl/Shared/MapTileLayerBase.cs @@ -18,6 +18,10 @@ using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Hosting; using Microsoft.UI.Xaml.Media; +#elif AVALONIA +using Avalonia.Controls; +using Avalonia.Media; +using Avalonia.Threading; #endif namespace MapControl diff --git a/MapControl/Shared/OrthographicProjection.cs b/MapControl/Shared/OrthographicProjection.cs index dec8096b..dc578772 100644 --- a/MapControl/Shared/OrthographicProjection.cs +++ b/MapControl/Shared/OrthographicProjection.cs @@ -1,6 +1,8 @@ using System; #if WPF using System.Windows; +#elif AVALONIA +using Avalonia; #endif namespace MapControl diff --git a/MapControl/Shared/PolarStereographicProjection.cs b/MapControl/Shared/PolarStereographicProjection.cs index 0fff5d0b..e69e01e5 100644 --- a/MapControl/Shared/PolarStereographicProjection.cs +++ b/MapControl/Shared/PolarStereographicProjection.cs @@ -1,6 +1,8 @@ using System; #if WPF using System.Windows; +#elif AVALONIA +using Avalonia; #endif namespace MapControl diff --git a/MapControl/Shared/PushpinBorder.cs b/MapControl/Shared/PushpinBorder.cs index 216791e5..57c2feaa 100644 --- a/MapControl/Shared/PushpinBorder.cs +++ b/MapControl/Shared/PushpinBorder.cs @@ -10,6 +10,10 @@ using Windows.UI.Xaml.Media; using Windows.Foundation; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Media; +#elif AVALONIA +using Avalonia; +using Avalonia.Layout; +using Avalonia.Media; #endif namespace MapControl diff --git a/MapControl/Shared/StereographicProjection.cs b/MapControl/Shared/StereographicProjection.cs index 7b680417..d335ecbb 100644 --- a/MapControl/Shared/StereographicProjection.cs +++ b/MapControl/Shared/StereographicProjection.cs @@ -1,6 +1,8 @@ using System; #if WPF using System.Windows; +#elif AVALONIA +using Avalonia; #endif namespace MapControl diff --git a/MapControl/Shared/Tile.cs b/MapControl/Shared/Tile.cs index 584d1cc4..29fb8821 100644 --- a/MapControl/Shared/Tile.cs +++ b/MapControl/Shared/Tile.cs @@ -8,6 +8,9 @@ using Windows.UI.Xaml.Media; #elif WINUI using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Media; +#elif AVALONIA +using Avalonia.Controls; +using Avalonia.Media; #endif namespace MapControl diff --git a/MapControl/Shared/TransverseMercatorProjection.cs b/MapControl/Shared/TransverseMercatorProjection.cs index 89af30b6..f582da30 100644 --- a/MapControl/Shared/TransverseMercatorProjection.cs +++ b/MapControl/Shared/TransverseMercatorProjection.cs @@ -1,6 +1,8 @@ using System; #if WPF using System.Windows; +#elif AVALONIA +using Avalonia; #endif namespace MapControl diff --git a/MapControl/Shared/TypeConverters.cs b/MapControl/Shared/TypeConverters.cs index 53d0e37a..70730d36 100644 --- a/MapControl/Shared/TypeConverters.cs +++ b/MapControl/Shared/TypeConverters.cs @@ -7,6 +7,8 @@ using System.Windows.Data; using Windows.UI.Xaml.Data; #elif WINUI using Microsoft.UI.Xaml.Data; +#elif AVALONIA +using Avalonia.Data.Converters; #endif #if UWP || WINUI using ConverterCulture = System.String; diff --git a/MapControl/Shared/ViewTransform.cs b/MapControl/Shared/ViewTransform.cs index c41ecf0e..f6be3224 100644 --- a/MapControl/Shared/ViewTransform.cs +++ b/MapControl/Shared/ViewTransform.cs @@ -5,6 +5,8 @@ using System.Windows.Media; using Windows.UI.Xaml.Media; #elif WINUI using Microsoft.UI.Xaml.Media; +#elif AVALONIA +using Avalonia; #endif namespace MapControl diff --git a/MapControl/Shared/WebMercatorProjection.cs b/MapControl/Shared/WebMercatorProjection.cs index 26e62ae3..0b4ebfeb 100644 --- a/MapControl/Shared/WebMercatorProjection.cs +++ b/MapControl/Shared/WebMercatorProjection.cs @@ -1,6 +1,8 @@ using System; #if WPF using System.Windows; +#elif AVALONIA +using Avalonia; #endif namespace MapControl diff --git a/MapControl/Shared/WmsImageLayer.cs b/MapControl/Shared/WmsImageLayer.cs index 323f99de..fe58de6c 100644 --- a/MapControl/Shared/WmsImageLayer.cs +++ b/MapControl/Shared/WmsImageLayer.cs @@ -14,6 +14,8 @@ using Windows.UI.Xaml.Media; #elif WINUI using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Media; +#elif AVALONIA +using Avalonia; #endif namespace MapControl diff --git a/MapControl/Shared/WmtsCapabilities.cs b/MapControl/Shared/WmtsCapabilities.cs index f9268510..c6bb847b 100644 --- a/MapControl/Shared/WmtsCapabilities.cs +++ b/MapControl/Shared/WmtsCapabilities.cs @@ -6,6 +6,8 @@ using System.Threading.Tasks; using System.Xml.Linq; #if WPF using System.Windows; +#elif AVALONIA +using Avalonia; #endif namespace MapControl diff --git a/MapControl/Shared/WmtsTileLayer.cs b/MapControl/Shared/WmtsTileLayer.cs index 131b4404..3c23f9e2 100644 --- a/MapControl/Shared/WmtsTileLayer.cs +++ b/MapControl/Shared/WmtsTileLayer.cs @@ -11,6 +11,9 @@ using Windows.UI.Xaml; #elif WINUI using Windows.Foundation; using Microsoft.UI.Xaml; +#elif AVALONIA +using Avalonia; +using Avalonia.Interactivity; #endif namespace MapControl diff --git a/MapControl/Shared/WmtsTileMatrix.cs b/MapControl/Shared/WmtsTileMatrix.cs index 1ee9d70a..8ea2d88c 100644 --- a/MapControl/Shared/WmtsTileMatrix.cs +++ b/MapControl/Shared/WmtsTileMatrix.cs @@ -1,5 +1,7 @@ #if WPF using System.Windows; +#elif AVALONIA +using Avalonia; #endif namespace MapControl diff --git a/MapControl/Shared/WmtsTileMatrixLayer.cs b/MapControl/Shared/WmtsTileMatrixLayer.cs index 0089238d..971e6e5b 100644 --- a/MapControl/Shared/WmtsTileMatrixLayer.cs +++ b/MapControl/Shared/WmtsTileMatrixLayer.cs @@ -11,6 +11,10 @@ using Windows.UI.Xaml.Media; using Windows.Foundation; using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Media; +#elif AVALONIA +using Avalonia; +using Avalonia.Controls; +using Avalonia.Media; #endif namespace MapControl diff --git a/MapControl/Shared/WorldMercatorProjection.cs b/MapControl/Shared/WorldMercatorProjection.cs index 4ed77901..0d093a90 100644 --- a/MapControl/Shared/WorldMercatorProjection.cs +++ b/MapControl/Shared/WorldMercatorProjection.cs @@ -1,6 +1,8 @@ using System; #if WPF using System.Windows; +#elif AVALONIA +using Avalonia; #endif namespace MapControl diff --git a/MapControl/WPF/MapItemsControl.WPF.cs b/MapControl/WPF/MapItemsControl.WPF.cs index 5c7a3118..116fa403 100644 --- a/MapControl/WPF/MapItemsControl.WPF.cs +++ b/MapControl/WPF/MapItemsControl.WPF.cs @@ -39,13 +39,13 @@ namespace MapControl protected override void PrepareContainerForItemOverride(DependencyObject container, object item) { base.PrepareContainerForItemOverride(container, item); - PrepareContainer(container, item); + PrepareContainer((MapItem)container, item); } protected override void ClearContainerForItemOverride(DependencyObject container, object item) { base.ClearContainerForItemOverride(container, item); - ClearContainer(container); + ClearContainer((MapItem)container); } } } diff --git a/MapControl/WinUI/MapItemsControl.WinUI.cs b/MapControl/WinUI/MapItemsControl.WinUI.cs index d6453ef2..46e8dbc5 100644 --- a/MapControl/WinUI/MapItemsControl.WinUI.cs +++ b/MapControl/WinUI/MapItemsControl.WinUI.cs @@ -32,13 +32,13 @@ namespace MapControl protected override void PrepareContainerForItemOverride(DependencyObject container, object item) { base.PrepareContainerForItemOverride(container, item); - PrepareContainer(container, item); + PrepareContainer((MapItem)container, item); } protected override void ClearContainerForItemOverride(DependencyObject container, object item) { base.ClearContainerForItemOverride(container, item); - ClearContainer(container); + ClearContainer((MapItem)container); } } }