diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bbcb4f5..0f836c0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,8 +19,8 @@ jobs: uses: actions/setup-dotnet@v1 with: dotnet-version: | - 6.x 8.x + 10.x - name: List dotnet sdks run: dotnet --info - name: Run the Cake script diff --git a/appveyor.yml b/appveyor.yml index 3ecacc5..eea2422 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -25,7 +25,7 @@ test: false install: - ps: Invoke-WebRequest 'https://dot.net/v1/dotnet-install.ps1' -OutFile 'dotnet-install.ps1' - - ps: ./dotnet-install.ps1 -Version 8.0.403 -InstallDir "C:\Program Files\dotnet" + - ps: ./dotnet-install.ps1 -Channel 10.0 -InstallDir "C:\Program Files\dotnet" pull_requests: do_not_increment_build_number: false diff --git a/global.json b/global.json index 6b13c9e..d2023c8 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "8.0.403", + "version": "10.0.100", "rollForward": "feature", "allowPrerelease": false } diff --git a/src/Directory.Build.props b/src/Directory.Build.props index f2318d9..ec356b3 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -1,14 +1,11 @@ - net8.0;net6.0;netstandard2.0 + net8.0;net10.0 latest latest true - - disable - true diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 18b8bf2..1ffce49 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -1,24 +1,20 @@ - - - - - true - - true - 11.0.13 - - - - - - - - - - + + + true + + true + 12.0.1 + + + + + + + \ No newline at end of file diff --git a/src/IconPacks.Avalonia.BootstrapIcons/Converter/PackIconBootstrapIconsKindToImageConverter.cs b/src/IconPacks.Avalonia.BootstrapIcons/Converter/PackIconBootstrapIconsKindToImageConverter.cs index 4b2ee25..7454de5 100644 --- a/src/IconPacks.Avalonia.BootstrapIcons/Converter/PackIconBootstrapIconsKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.BootstrapIcons/Converter/PackIconBootstrapIconsKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.BootstrapIcons.Converter { public class PackIconBootstrapIconsKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconBootstrapIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.BootstrapIcons/PackIconBootstrapIcons.cs b/src/IconPacks.Avalonia.BootstrapIcons/PackIconBootstrapIcons.cs index f792b23..40609ba 100644 --- a/src/IconPacks.Avalonia.BootstrapIcons/PackIconBootstrapIcons.cs +++ b/src/IconPacks.Avalonia.BootstrapIcons/PackIconBootstrapIcons.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.BootstrapIcons/PackIconBootstrapIconsExtension.cs b/src/IconPacks.Avalonia.BootstrapIcons/PackIconBootstrapIconsExtension.cs index d19fc55..9102851 100644 --- a/src/IconPacks.Avalonia.BootstrapIcons/PackIconBootstrapIconsExtension.cs +++ b/src/IconPacks.Avalonia.BootstrapIcons/PackIconBootstrapIconsExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.BootstrapIcons diff --git a/src/IconPacks.Avalonia.BootstrapIcons/PackIconBootstrapIconsImageExtension.cs b/src/IconPacks.Avalonia.BootstrapIcons/PackIconBootstrapIconsImageExtension.cs index 1425978..9808ec3 100644 --- a/src/IconPacks.Avalonia.BootstrapIcons/PackIconBootstrapIconsImageExtension.cs +++ b/src/IconPacks.Avalonia.BootstrapIcons/PackIconBootstrapIconsImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.BootstrapIcons @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconBootstrapIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.BoxIcons/Converter/PackIconBoxIconsKindToImageConverter.cs b/src/IconPacks.Avalonia.BoxIcons/Converter/PackIconBoxIconsKindToImageConverter.cs index 293140d..1ef0d34 100644 --- a/src/IconPacks.Avalonia.BoxIcons/Converter/PackIconBoxIconsKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.BoxIcons/Converter/PackIconBoxIconsKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.BoxIcons.Converter { public class PackIconBoxIconsKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconBoxIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.BoxIcons/PackIconBoxIcons.cs b/src/IconPacks.Avalonia.BoxIcons/PackIconBoxIcons.cs index 44e107e..2f3986d 100644 --- a/src/IconPacks.Avalonia.BoxIcons/PackIconBoxIcons.cs +++ b/src/IconPacks.Avalonia.BoxIcons/PackIconBoxIcons.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.BoxIcons/PackIconBoxIconsExtension.cs b/src/IconPacks.Avalonia.BoxIcons/PackIconBoxIconsExtension.cs index 50e9635..8760833 100644 --- a/src/IconPacks.Avalonia.BoxIcons/PackIconBoxIconsExtension.cs +++ b/src/IconPacks.Avalonia.BoxIcons/PackIconBoxIconsExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.BoxIcons diff --git a/src/IconPacks.Avalonia.BoxIcons/PackIconBoxIconsImageExtension.cs b/src/IconPacks.Avalonia.BoxIcons/PackIconBoxIconsImageExtension.cs index 07eca25..2101402 100644 --- a/src/IconPacks.Avalonia.BoxIcons/PackIconBoxIconsImageExtension.cs +++ b/src/IconPacks.Avalonia.BoxIcons/PackIconBoxIconsImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.BoxIcons @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconBoxIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.BoxIcons2/Converter/PackIconBoxIcons2KindToImageConverter.cs b/src/IconPacks.Avalonia.BoxIcons2/Converter/PackIconBoxIcons2KindToImageConverter.cs index 47563e5..a11eb0c 100644 --- a/src/IconPacks.Avalonia.BoxIcons2/Converter/PackIconBoxIcons2KindToImageConverter.cs +++ b/src/IconPacks.Avalonia.BoxIcons2/Converter/PackIconBoxIcons2KindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.BoxIcons2.Converter { public class PackIconBoxIcons2KindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconBoxIcons2Kind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.BoxIcons2/PackIconBoxIcons2.cs b/src/IconPacks.Avalonia.BoxIcons2/PackIconBoxIcons2.cs index 646d544..e0779a4 100644 --- a/src/IconPacks.Avalonia.BoxIcons2/PackIconBoxIcons2.cs +++ b/src/IconPacks.Avalonia.BoxIcons2/PackIconBoxIcons2.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.BoxIcons2/PackIconBoxIcons2Extension.cs b/src/IconPacks.Avalonia.BoxIcons2/PackIconBoxIcons2Extension.cs index 6a87933..48001f2 100644 --- a/src/IconPacks.Avalonia.BoxIcons2/PackIconBoxIcons2Extension.cs +++ b/src/IconPacks.Avalonia.BoxIcons2/PackIconBoxIcons2Extension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.BoxIcons2 diff --git a/src/IconPacks.Avalonia.BoxIcons2/PackIconBoxIcons2ImageExtension.cs b/src/IconPacks.Avalonia.BoxIcons2/PackIconBoxIcons2ImageExtension.cs index 2aeb570..d64ee00 100644 --- a/src/IconPacks.Avalonia.BoxIcons2/PackIconBoxIcons2ImageExtension.cs +++ b/src/IconPacks.Avalonia.BoxIcons2/PackIconBoxIcons2ImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.BoxIcons2 @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconBoxIcons2Kind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.CircumIcons/Converter/PackIconCircumIconsKindToImageConverter.cs b/src/IconPacks.Avalonia.CircumIcons/Converter/PackIconCircumIconsKindToImageConverter.cs index a4ee260..eed55f9 100644 --- a/src/IconPacks.Avalonia.CircumIcons/Converter/PackIconCircumIconsKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.CircumIcons/Converter/PackIconCircumIconsKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.CircumIcons.Converter { public class PackIconCircumIconsKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconCircumIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.CircumIcons/PackIconCircumIcons.cs b/src/IconPacks.Avalonia.CircumIcons/PackIconCircumIcons.cs index 3bd6b6e..0370f92 100644 --- a/src/IconPacks.Avalonia.CircumIcons/PackIconCircumIcons.cs +++ b/src/IconPacks.Avalonia.CircumIcons/PackIconCircumIcons.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.CircumIcons/PackIconCircumIconsExtension.cs b/src/IconPacks.Avalonia.CircumIcons/PackIconCircumIconsExtension.cs index 8bb86a4..0522059 100644 --- a/src/IconPacks.Avalonia.CircumIcons/PackIconCircumIconsExtension.cs +++ b/src/IconPacks.Avalonia.CircumIcons/PackIconCircumIconsExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.CircumIcons diff --git a/src/IconPacks.Avalonia.CircumIcons/PackIconCircumIconsImageExtension.cs b/src/IconPacks.Avalonia.CircumIcons/PackIconCircumIconsImageExtension.cs index 2d8336d..589968d 100644 --- a/src/IconPacks.Avalonia.CircumIcons/PackIconCircumIconsImageExtension.cs +++ b/src/IconPacks.Avalonia.CircumIcons/PackIconCircumIconsImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.CircumIcons @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconCircumIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Codicons/Converter/PackIconCodiconsKindToImageConverter.cs b/src/IconPacks.Avalonia.Codicons/Converter/PackIconCodiconsKindToImageConverter.cs index 6400d1c..add3642 100644 --- a/src/IconPacks.Avalonia.Codicons/Converter/PackIconCodiconsKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.Codicons/Converter/PackIconCodiconsKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.Codicons.Converter { public class PackIconCodiconsKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconCodiconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Codicons/PackIconCodicons.cs b/src/IconPacks.Avalonia.Codicons/PackIconCodicons.cs index 1c0a838..d882c32 100644 --- a/src/IconPacks.Avalonia.Codicons/PackIconCodicons.cs +++ b/src/IconPacks.Avalonia.Codicons/PackIconCodicons.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.Codicons/PackIconCodiconsExtension.cs b/src/IconPacks.Avalonia.Codicons/PackIconCodiconsExtension.cs index 5e61dce..d25a5e6 100644 --- a/src/IconPacks.Avalonia.Codicons/PackIconCodiconsExtension.cs +++ b/src/IconPacks.Avalonia.Codicons/PackIconCodiconsExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Codicons diff --git a/src/IconPacks.Avalonia.Codicons/PackIconCodiconsImageExtension.cs b/src/IconPacks.Avalonia.Codicons/PackIconCodiconsImageExtension.cs index 16c7e70..149251c 100644 --- a/src/IconPacks.Avalonia.Codicons/PackIconCodiconsImageExtension.cs +++ b/src/IconPacks.Avalonia.Codicons/PackIconCodiconsImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Codicons @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconCodiconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Coolicons/Converter/PackIconCooliconsKindToImageConverter.cs b/src/IconPacks.Avalonia.Coolicons/Converter/PackIconCooliconsKindToImageConverter.cs index ce668c0..74dcf0d 100644 --- a/src/IconPacks.Avalonia.Coolicons/Converter/PackIconCooliconsKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.Coolicons/Converter/PackIconCooliconsKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.Coolicons.Converter { public class PackIconCooliconsKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconCooliconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Coolicons/PackIconCoolicons.cs b/src/IconPacks.Avalonia.Coolicons/PackIconCoolicons.cs index fa186ab..a3157e9 100644 --- a/src/IconPacks.Avalonia.Coolicons/PackIconCoolicons.cs +++ b/src/IconPacks.Avalonia.Coolicons/PackIconCoolicons.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.Coolicons/PackIconCooliconsExtension.cs b/src/IconPacks.Avalonia.Coolicons/PackIconCooliconsExtension.cs index 0a56975..496176e 100644 --- a/src/IconPacks.Avalonia.Coolicons/PackIconCooliconsExtension.cs +++ b/src/IconPacks.Avalonia.Coolicons/PackIconCooliconsExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Coolicons diff --git a/src/IconPacks.Avalonia.Coolicons/PackIconCooliconsImageExtension.cs b/src/IconPacks.Avalonia.Coolicons/PackIconCooliconsImageExtension.cs index 0d47e34..910c605 100644 --- a/src/IconPacks.Avalonia.Coolicons/PackIconCooliconsImageExtension.cs +++ b/src/IconPacks.Avalonia.Coolicons/PackIconCooliconsImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Coolicons @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconCooliconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Core/Converter/PackIconKindToImageConverterBase.cs b/src/IconPacks.Avalonia.Core/Converter/PackIconKindToImageConverterBase.cs index ff75d8c..5c42ba3 100644 --- a/src/IconPacks.Avalonia.Core/Converter/PackIconKindToImageConverterBase.cs +++ b/src/IconPacks.Avalonia.Core/Converter/PackIconKindToImageConverterBase.cs @@ -24,7 +24,12 @@ public abstract class PackIconKindToImageConverterBase : MarkupConverter /// /// Gets the path data for the given kind. /// - protected abstract string GetPathData(object iconKind); + protected string GetPathData(object iconKind) + { + return PackIconDataIndex.TryGetPath((Enum)iconKind, out string data) + ? data + : null; + } /// /// Gets the ScaleTransform for the given kind. @@ -53,7 +58,7 @@ protected Transform GetTransformGroup(object iconKind) } /// - /// Gets the object that will be used for the . + /// Gets the object that will be used for the . /// protected virtual DrawingGroup GetDrawingGroup(object iconKind, IBrush foregroundBrush, string path) { diff --git a/src/IconPacks.Avalonia.Core/IconGeometryCache.cs b/src/IconPacks.Avalonia.Core/IconGeometryCache.cs new file mode 100644 index 0000000..b9529fc --- /dev/null +++ b/src/IconPacks.Avalonia.Core/IconGeometryCache.cs @@ -0,0 +1,114 @@ +#nullable enable +using System; +using System.Collections.Generic; +using Avalonia.Media; + +namespace IconPacks.Avalonia.Core; + +public static class PackIconGeometryCache +{ + private static int _cacheSize = 100; + + /// + /// Gets or sets the maximum number of icons to cache. + /// + public static int CacheSize + { + get => _cacheSize; + set + { + _cacheSize = value; + TrimUnsafe(_cacheSize); + } + } + + private sealed class Entry + { + public Enum Key { get; } + public StreamGeometry Geometry { get; } + + public Entry(Enum key, StreamGeometry geometry) + { + Key = key; + Geometry = geometry; + } + } + + private static readonly object _Gate = new(); + private static readonly Dictionary> _Map = new(); + private static readonly LinkedList _Lru = new(); + + public static StreamGeometry? GetOrAdd(Enum kind) + { + var capacity = CacheSize; + string? path; + + if (capacity <= 0) + return PackIconDataIndex.TryGetPath(kind, out path) ? + CreateGeometry(path) : null; + + // Fast path: try hit + lock (_Gate) + { + if (_Map.TryGetValue(kind, out var node)) + { + _Lru.Remove(node); + _Lru.AddFirst(node); + return node.Value.Geometry; + } + } + + // Parse outside lock (parsing can be expensive) + PackIconDataIndex.TryGetPath(kind, out path); + var created = CreateGeometry(path); + if (created is null) + return null; + + lock (_Gate) + { + // Re-check in case it was added while we parsed + if (_Map.TryGetValue(kind, out var existing)) + { + _Lru.Remove(existing); + _Lru.AddFirst(existing); + return existing.Value.Geometry; + } + + var newNode = new LinkedListNode(new Entry(kind, created)); + _Lru.AddFirst(newNode); + _Map[kind] = newNode; + + TrimUnsafe(capacity); + return created; + } + } + + private static StreamGeometry? CreateGeometry(string? data) + { + return data is null || string.IsNullOrWhiteSpace(data) + ? null + : StreamGeometry.Parse(data); + } + + private static void TrimUnsafe(int capacity) + { + lock (_Gate) + { + while (_Map.Count > capacity && _Lru.Last is not null) + { + var last = _Lru.Last; + _Lru.RemoveLast(); + _Map.Remove(last.Value.Key); + } + } + } + + public static void Clear() + { + lock (_Gate) + { + _Map.Clear(); + _Lru.Clear(); + } + } +} \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Core/IconPacks.Avalonia.Core.csproj b/src/IconPacks.Avalonia.Core/IconPacks.Avalonia.Core.csproj index 496db40..0360723 100644 --- a/src/IconPacks.Avalonia.Core/IconPacks.Avalonia.Core.csproj +++ b/src/IconPacks.Avalonia.Core/IconPacks.Avalonia.Core.csproj @@ -14,7 +14,7 @@ - + diff --git a/src/IconPacks.Avalonia.Core/PackIconControlBase.cs b/src/IconPacks.Avalonia.Core/PackIconControlBase.cs index 32a4746..c086746 100644 --- a/src/IconPacks.Avalonia.Core/PackIconControlBase.cs +++ b/src/IconPacks.Avalonia.Core/PackIconControlBase.cs @@ -4,7 +4,6 @@ using Avalonia.Animation; using Avalonia.Animation.Easings; using Avalonia.Controls; -using Avalonia.Controls.Metadata; using Avalonia.Controls.Primitives; using Avalonia.Data; using Avalonia.Media; @@ -147,7 +146,7 @@ public static readonly StyledProperty RotationAngleProperty false, BindingMode.OneWay, null, - (packIcon, value) => + (_, value) => { if (value < 0) { diff --git a/src/IconPacks.Avalonia.Core/PackIconDataFactory.cs b/src/IconPacks.Avalonia.Core/PackIconDataFactory.cs index 6c32401..67e0a92 100644 --- a/src/IconPacks.Avalonia.Core/PackIconDataFactory.cs +++ b/src/IconPacks.Avalonia.Core/PackIconDataFactory.cs @@ -1,25 +1,17 @@ using System; using System.Collections.Generic; -using System.Collections.ObjectModel; using System.Text.Json; using Avalonia.Platform; namespace IconPacks.Avalonia.Core { - public static class PackIconDataFactory where TEnum : struct, Enum + public static class PackIconDataFactory { - public static Lazy> DataIndex { get; } - - static PackIconDataFactory() - { - DataIndex = new Lazy>(() => new ReadOnlyDictionary(Create())); - } - - public static IDictionary Create() + public static IDictionary Create() where TEnum : struct, Enum { using var iconJsonStream = AssetLoader.Open(new Uri($"avares://{typeof(TEnum).Assembly.GetName().Name}/Resources/Icons.json")); - var stringDict = JsonSerializer.Deserialize>( - iconJsonStream, IconJsonContext.Default.DictionaryStringString) + var stringDict = JsonSerializer.Deserialize( + iconJsonStream, IconJsonContext.Default.DictionaryStringString) ?? new Dictionary(); var result = new Dictionary(stringDict.Count); @@ -33,5 +25,29 @@ public static IDictionary Create() return result; } + + public static IDictionary Create(Type enumType) + { + using var iconJsonStream = AssetLoader.Open(new Uri($"avares://{enumType.Assembly.GetName().Name}/Resources/Icons.json")); + var stringDict = JsonSerializer.Deserialize>( + iconJsonStream, IconJsonContext.Default.DictionaryStringString) + ?? new Dictionary(); + + var result = new Dictionary(stringDict.Count); + foreach (var kvp in stringDict) + { + try + { + var enumKey = Enum.Parse(enumType, kvp.Key); + result[(Enum)enumKey] = kvp.Value; + } + catch + { + // ignored + } + } + + return result; + } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Core/PackIconDataIndex.cs b/src/IconPacks.Avalonia.Core/PackIconDataIndex.cs new file mode 100644 index 0000000..68addf3 --- /dev/null +++ b/src/IconPacks.Avalonia.Core/PackIconDataIndex.cs @@ -0,0 +1,49 @@ +#nullable enable + +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; + +namespace IconPacks.Avalonia.Core; + +public static class PackIconDataIndex +{ + private static readonly object Gate = new(); + private static readonly Dictionary> Packs = new(); + + public static ReadOnlyDictionary Register(Type enumType, IDictionary? icons = null) + { + lock (Gate) + { + if (!Packs.TryGetValue(enumType, out ReadOnlyDictionary? value)) + { + // Convert IDictionary to IDictionary + var src = icons ?? PackIconDataFactory.Create(enumType); + var dst = new Dictionary(src.Count); + foreach (var kv in src) + { + dst[kv.Key] = kv.Value; // box TKind to Enum + } + + value = new ReadOnlyDictionary(dst); + Packs[enumType] = value; + } + return value; + } + } + + public static bool TryGetPath(Enum kind, out string? path) + { + var type = kind.GetType(); + ReadOnlyDictionary? packDictionary; + lock (Gate) + { + if (!Packs.TryGetValue(type, out packDictionary)) + { + packDictionary = Register(kind.GetType()); + } + } + + return packDictionary.TryGetValue(kind, out path); + } +} \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Core/PackIconImageExtension.cs b/src/IconPacks.Avalonia.Core/PackIconImageExtension.cs index e0c52ed..eda8ece 100644 --- a/src/IconPacks.Avalonia.Core/PackIconImageExtension.cs +++ b/src/IconPacks.Avalonia.Core/PackIconImageExtension.cs @@ -1,4 +1,5 @@ -using Avalonia.Markup.Xaml; +using System; +using Avalonia.Markup.Xaml; using Avalonia.Media; namespace IconPacks.Avalonia.Core @@ -20,11 +21,6 @@ public abstract class BasePackIconImageExtension : MarkupExtension /// public double RotationAngle { get; set; } = 0d; - /// - /// Gets the path data for the given kind. - /// - protected abstract string GetPathData(object iconKind); - /// /// Gets the ScaleTransform for the given kind. /// @@ -54,11 +50,11 @@ protected Transform GetTransformGroup(object iconKind) /// /// Gets the object that will be used for the . /// - protected virtual DrawingGroup GetDrawingGroup(object iconKind, IBrush foregroundBrush, string path) + protected virtual DrawingGroup GetDrawingGroup(object iconKind, IBrush foregroundBrush, StreamGeometry path) { var geometryDrawing = new GeometryDrawing { - Geometry = StreamGeometry.Parse(path), + Geometry = path, Brush = foregroundBrush }; @@ -76,9 +72,9 @@ protected virtual DrawingGroup GetDrawingGroup(object iconKind, IBrush foregroun /// protected IImage CreateImageSource(object iconKind, IBrush foregroundBrush) { - var path = this.GetPathData(iconKind); + var path = PackIconGeometryCache.GetOrAdd((Enum)iconKind); - if (string.IsNullOrEmpty(path)) + if (path is null) { return null; } diff --git a/src/IconPacks.Avalonia.Entypo/Converter/PackIconEntypoKindToImageConverter.cs b/src/IconPacks.Avalonia.Entypo/Converter/PackIconEntypoKindToImageConverter.cs index a7ff2db..745f234 100644 --- a/src/IconPacks.Avalonia.Entypo/Converter/PackIconEntypoKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.Entypo/Converter/PackIconEntypoKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.Entypo.Converter { public class PackIconEntypoKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconEntypoKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Entypo/PackIconEntypo.cs b/src/IconPacks.Avalonia.Entypo/PackIconEntypo.cs index 2cae59a..820af6f 100644 --- a/src/IconPacks.Avalonia.Entypo/PackIconEntypo.cs +++ b/src/IconPacks.Avalonia.Entypo/PackIconEntypo.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.Entypo/PackIconEntypoExtension.cs b/src/IconPacks.Avalonia.Entypo/PackIconEntypoExtension.cs index 31e5a3e..4decc35 100644 --- a/src/IconPacks.Avalonia.Entypo/PackIconEntypoExtension.cs +++ b/src/IconPacks.Avalonia.Entypo/PackIconEntypoExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Entypo diff --git a/src/IconPacks.Avalonia.Entypo/PackIconEntypoImageExtension.cs b/src/IconPacks.Avalonia.Entypo/PackIconEntypoImageExtension.cs index 8359e8d..41ad91e 100644 --- a/src/IconPacks.Avalonia.Entypo/PackIconEntypoImageExtension.cs +++ b/src/IconPacks.Avalonia.Entypo/PackIconEntypoImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Entypo @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconEntypoKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.EvaIcons/Converter/PackIconEvaIconsKindToImageConverter.cs b/src/IconPacks.Avalonia.EvaIcons/Converter/PackIconEvaIconsKindToImageConverter.cs index c38defc..f4fccba 100644 --- a/src/IconPacks.Avalonia.EvaIcons/Converter/PackIconEvaIconsKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.EvaIcons/Converter/PackIconEvaIconsKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.EvaIcons.Converter { public class PackIconEvaIconsKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconEvaIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.EvaIcons/PackIconEvaIcons.cs b/src/IconPacks.Avalonia.EvaIcons/PackIconEvaIcons.cs index ac2ff67..3e507b3 100644 --- a/src/IconPacks.Avalonia.EvaIcons/PackIconEvaIcons.cs +++ b/src/IconPacks.Avalonia.EvaIcons/PackIconEvaIcons.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.EvaIcons/PackIconEvaIconsExtension.cs b/src/IconPacks.Avalonia.EvaIcons/PackIconEvaIconsExtension.cs index e4af514..c82a32f 100644 --- a/src/IconPacks.Avalonia.EvaIcons/PackIconEvaIconsExtension.cs +++ b/src/IconPacks.Avalonia.EvaIcons/PackIconEvaIconsExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.EvaIcons diff --git a/src/IconPacks.Avalonia.EvaIcons/PackIconEvaIconsImageExtension.cs b/src/IconPacks.Avalonia.EvaIcons/PackIconEvaIconsImageExtension.cs index 0280785..7274662 100644 --- a/src/IconPacks.Avalonia.EvaIcons/PackIconEvaIconsImageExtension.cs +++ b/src/IconPacks.Avalonia.EvaIcons/PackIconEvaIconsImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.EvaIcons @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconEvaIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.FeatherIcons/Converter/PackIconFeatherIconsKindToImageConverter.cs b/src/IconPacks.Avalonia.FeatherIcons/Converter/PackIconFeatherIconsKindToImageConverter.cs index d39d3c9..84e9740 100644 --- a/src/IconPacks.Avalonia.FeatherIcons/Converter/PackIconFeatherIconsKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.FeatherIcons/Converter/PackIconFeatherIconsKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.FeatherIcons.Converter { public class PackIconFeatherIconsKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconFeatherIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.FeatherIcons/PackIconFeatherIcons.cs b/src/IconPacks.Avalonia.FeatherIcons/PackIconFeatherIcons.cs index ed03762..9a2e233 100644 --- a/src/IconPacks.Avalonia.FeatherIcons/PackIconFeatherIcons.cs +++ b/src/IconPacks.Avalonia.FeatherIcons/PackIconFeatherIcons.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.FeatherIcons/PackIconFeatherIconsExtension.cs b/src/IconPacks.Avalonia.FeatherIcons/PackIconFeatherIconsExtension.cs index f87e446..dd89a3d 100644 --- a/src/IconPacks.Avalonia.FeatherIcons/PackIconFeatherIconsExtension.cs +++ b/src/IconPacks.Avalonia.FeatherIcons/PackIconFeatherIconsExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.FeatherIcons diff --git a/src/IconPacks.Avalonia.FeatherIcons/PackIconFeatherIconsImageExtension.cs b/src/IconPacks.Avalonia.FeatherIcons/PackIconFeatherIconsImageExtension.cs index bfdbfbd..a2837f4 100644 --- a/src/IconPacks.Avalonia.FeatherIcons/PackIconFeatherIconsImageExtension.cs +++ b/src/IconPacks.Avalonia.FeatherIcons/PackIconFeatherIconsImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.FeatherIcons @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconFeatherIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.FileIcons/Converter/PackIconFileIconsKindToImageConverter.cs b/src/IconPacks.Avalonia.FileIcons/Converter/PackIconFileIconsKindToImageConverter.cs index 5d814d4..961aca3 100644 --- a/src/IconPacks.Avalonia.FileIcons/Converter/PackIconFileIconsKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.FileIcons/Converter/PackIconFileIconsKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.FileIcons.Converter { public class PackIconFileIconsKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconFileIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.FileIcons/PackIconFileIcons.cs b/src/IconPacks.Avalonia.FileIcons/PackIconFileIcons.cs index bbc03d5..54cb6c2 100644 --- a/src/IconPacks.Avalonia.FileIcons/PackIconFileIcons.cs +++ b/src/IconPacks.Avalonia.FileIcons/PackIconFileIcons.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.FileIcons/PackIconFileIconsExtension.cs b/src/IconPacks.Avalonia.FileIcons/PackIconFileIconsExtension.cs index 45d17ac..e5a8564 100644 --- a/src/IconPacks.Avalonia.FileIcons/PackIconFileIconsExtension.cs +++ b/src/IconPacks.Avalonia.FileIcons/PackIconFileIconsExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.FileIcons diff --git a/src/IconPacks.Avalonia.FileIcons/PackIconFileIconsImageExtension.cs b/src/IconPacks.Avalonia.FileIcons/PackIconFileIconsImageExtension.cs index cadc066..626a18e 100644 --- a/src/IconPacks.Avalonia.FileIcons/PackIconFileIconsImageExtension.cs +++ b/src/IconPacks.Avalonia.FileIcons/PackIconFileIconsImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.FileIcons @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconFileIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.FontAwesome/Converter/PackIconFontAwesomeKindToImageConverter.cs b/src/IconPacks.Avalonia.FontAwesome/Converter/PackIconFontAwesomeKindToImageConverter.cs index a36036f..33722bd 100644 --- a/src/IconPacks.Avalonia.FontAwesome/Converter/PackIconFontAwesomeKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.FontAwesome/Converter/PackIconFontAwesomeKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.FontAwesome.Converter { public class PackIconFontAwesomeKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconFontAwesomeKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.FontAwesome/PackIconFontAwesome.cs b/src/IconPacks.Avalonia.FontAwesome/PackIconFontAwesome.cs index baf144f..c915c2e 100644 --- a/src/IconPacks.Avalonia.FontAwesome/PackIconFontAwesome.cs +++ b/src/IconPacks.Avalonia.FontAwesome/PackIconFontAwesome.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.FontAwesome/PackIconFontAwesomeExtension.cs b/src/IconPacks.Avalonia.FontAwesome/PackIconFontAwesomeExtension.cs index 0a17e58..0b9c1fa 100644 --- a/src/IconPacks.Avalonia.FontAwesome/PackIconFontAwesomeExtension.cs +++ b/src/IconPacks.Avalonia.FontAwesome/PackIconFontAwesomeExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.FontAwesome diff --git a/src/IconPacks.Avalonia.FontAwesome/PackIconFontAwesomeImageExtension.cs b/src/IconPacks.Avalonia.FontAwesome/PackIconFontAwesomeImageExtension.cs index 03eb75e..a86d968 100644 --- a/src/IconPacks.Avalonia.FontAwesome/PackIconFontAwesomeImageExtension.cs +++ b/src/IconPacks.Avalonia.FontAwesome/PackIconFontAwesomeImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.FontAwesome @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconFontAwesomeKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.FontAwesome5/Converter/PackIconFontAwesome5KindToImageConverter.cs b/src/IconPacks.Avalonia.FontAwesome5/Converter/PackIconFontAwesome5KindToImageConverter.cs index e40b3c1..fcdeb93 100644 --- a/src/IconPacks.Avalonia.FontAwesome5/Converter/PackIconFontAwesome5KindToImageConverter.cs +++ b/src/IconPacks.Avalonia.FontAwesome5/Converter/PackIconFontAwesome5KindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.FontAwesome5.Converter { public class PackIconFontAwesome5KindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconFontAwesome5Kind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.FontAwesome5/PackIconFontAwesome5.cs b/src/IconPacks.Avalonia.FontAwesome5/PackIconFontAwesome5.cs index 56a6b17..c99463e 100644 --- a/src/IconPacks.Avalonia.FontAwesome5/PackIconFontAwesome5.cs +++ b/src/IconPacks.Avalonia.FontAwesome5/PackIconFontAwesome5.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.FontAwesome5/PackIconFontAwesome5Extension.cs b/src/IconPacks.Avalonia.FontAwesome5/PackIconFontAwesome5Extension.cs index 662d0f9..c1b9791 100644 --- a/src/IconPacks.Avalonia.FontAwesome5/PackIconFontAwesome5Extension.cs +++ b/src/IconPacks.Avalonia.FontAwesome5/PackIconFontAwesome5Extension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.FontAwesome5 diff --git a/src/IconPacks.Avalonia.FontAwesome5/PackIconFontAwesome5ImageExtension.cs b/src/IconPacks.Avalonia.FontAwesome5/PackIconFontAwesome5ImageExtension.cs index 9e5d8da..5c88630 100644 --- a/src/IconPacks.Avalonia.FontAwesome5/PackIconFontAwesome5ImageExtension.cs +++ b/src/IconPacks.Avalonia.FontAwesome5/PackIconFontAwesome5ImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.FontAwesome5 @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconFontAwesome5Kind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.FontAwesome6/Converter/PackIconFontAwesome6KindToImageConverter.cs b/src/IconPacks.Avalonia.FontAwesome6/Converter/PackIconFontAwesome6KindToImageConverter.cs index 0173d2d..aa4cedc 100644 --- a/src/IconPacks.Avalonia.FontAwesome6/Converter/PackIconFontAwesome6KindToImageConverter.cs +++ b/src/IconPacks.Avalonia.FontAwesome6/Converter/PackIconFontAwesome6KindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.FontAwesome6.Converter { public class PackIconFontAwesome6KindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconFontAwesome6Kind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.FontAwesome6/PackIconFontAwesome6.cs b/src/IconPacks.Avalonia.FontAwesome6/PackIconFontAwesome6.cs index a878a21..87401bb 100644 --- a/src/IconPacks.Avalonia.FontAwesome6/PackIconFontAwesome6.cs +++ b/src/IconPacks.Avalonia.FontAwesome6/PackIconFontAwesome6.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.FontAwesome6/PackIconFontAwesome6Extension.cs b/src/IconPacks.Avalonia.FontAwesome6/PackIconFontAwesome6Extension.cs index def5477..b151bb7 100644 --- a/src/IconPacks.Avalonia.FontAwesome6/PackIconFontAwesome6Extension.cs +++ b/src/IconPacks.Avalonia.FontAwesome6/PackIconFontAwesome6Extension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.FontAwesome6 diff --git a/src/IconPacks.Avalonia.FontAwesome6/PackIconFontAwesome6ImageExtension.cs b/src/IconPacks.Avalonia.FontAwesome6/PackIconFontAwesome6ImageExtension.cs index 95b8a71..873f53c 100644 --- a/src/IconPacks.Avalonia.FontAwesome6/PackIconFontAwesome6ImageExtension.cs +++ b/src/IconPacks.Avalonia.FontAwesome6/PackIconFontAwesome6ImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.FontAwesome6 @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconFontAwesome6Kind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Fontaudio/Converter/PackIconFontaudioKindToImageConverter.cs b/src/IconPacks.Avalonia.Fontaudio/Converter/PackIconFontaudioKindToImageConverter.cs index 063162e..fb97a5d 100644 --- a/src/IconPacks.Avalonia.Fontaudio/Converter/PackIconFontaudioKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.Fontaudio/Converter/PackIconFontaudioKindToImageConverter.cs @@ -1,21 +1,9 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.Fontaudio.Converter { public class PackIconFontaudioKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconFontaudioKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Fontaudio/PackIconFontaudio.cs b/src/IconPacks.Avalonia.Fontaudio/PackIconFontaudio.cs index 16ae57e..668f1c9 100644 --- a/src/IconPacks.Avalonia.Fontaudio/PackIconFontaudio.cs +++ b/src/IconPacks.Avalonia.Fontaudio/PackIconFontaudio.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.Fontaudio/PackIconFontaudioExtension.cs b/src/IconPacks.Avalonia.Fontaudio/PackIconFontaudioExtension.cs index 6f32938..34e7e2e 100644 --- a/src/IconPacks.Avalonia.Fontaudio/PackIconFontaudioExtension.cs +++ b/src/IconPacks.Avalonia.Fontaudio/PackIconFontaudioExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Fontaudio diff --git a/src/IconPacks.Avalonia.Fontaudio/PackIconFontaudioImageExtension.cs b/src/IconPacks.Avalonia.Fontaudio/PackIconFontaudioImageExtension.cs index 2c135c8..aad9d4b 100644 --- a/src/IconPacks.Avalonia.Fontaudio/PackIconFontaudioImageExtension.cs +++ b/src/IconPacks.Avalonia.Fontaudio/PackIconFontaudioImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Fontaudio @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconFontaudioKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Fontisto/Converter/PackIconFontistoKindToImageConverter.cs b/src/IconPacks.Avalonia.Fontisto/Converter/PackIconFontistoKindToImageConverter.cs index c4401c3..ba51465 100644 --- a/src/IconPacks.Avalonia.Fontisto/Converter/PackIconFontistoKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.Fontisto/Converter/PackIconFontistoKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.Fontisto.Converter { public class PackIconFontistoKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconFontistoKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Fontisto/PackIconFontisto.cs b/src/IconPacks.Avalonia.Fontisto/PackIconFontisto.cs index 559dd69..7e034e3 100644 --- a/src/IconPacks.Avalonia.Fontisto/PackIconFontisto.cs +++ b/src/IconPacks.Avalonia.Fontisto/PackIconFontisto.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.Fontisto/PackIconFontistoExtension.cs b/src/IconPacks.Avalonia.Fontisto/PackIconFontistoExtension.cs index 6894c66..6eaff3c 100644 --- a/src/IconPacks.Avalonia.Fontisto/PackIconFontistoExtension.cs +++ b/src/IconPacks.Avalonia.Fontisto/PackIconFontistoExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Fontisto diff --git a/src/IconPacks.Avalonia.Fontisto/PackIconFontistoImageExtension.cs b/src/IconPacks.Avalonia.Fontisto/PackIconFontistoImageExtension.cs index 185022c..d342df0 100644 --- a/src/IconPacks.Avalonia.Fontisto/PackIconFontistoImageExtension.cs +++ b/src/IconPacks.Avalonia.Fontisto/PackIconFontistoImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Fontisto @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconFontistoKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.ForkAwesome/Converter/PackIconForkAwesomeKindToImageConverter.cs b/src/IconPacks.Avalonia.ForkAwesome/Converter/PackIconForkAwesomeKindToImageConverter.cs index 70ec763..06a6417 100644 --- a/src/IconPacks.Avalonia.ForkAwesome/Converter/PackIconForkAwesomeKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.ForkAwesome/Converter/PackIconForkAwesomeKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.ForkAwesome.Converter { public class PackIconForkAwesomeKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconForkAwesomeKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.ForkAwesome/PackIconForkAwesome.cs b/src/IconPacks.Avalonia.ForkAwesome/PackIconForkAwesome.cs index 66f6b6f..5186a62 100644 --- a/src/IconPacks.Avalonia.ForkAwesome/PackIconForkAwesome.cs +++ b/src/IconPacks.Avalonia.ForkAwesome/PackIconForkAwesome.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.ForkAwesome/PackIconForkAwesomeExtension.cs b/src/IconPacks.Avalonia.ForkAwesome/PackIconForkAwesomeExtension.cs index a57688e..0a3f843 100644 --- a/src/IconPacks.Avalonia.ForkAwesome/PackIconForkAwesomeExtension.cs +++ b/src/IconPacks.Avalonia.ForkAwesome/PackIconForkAwesomeExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.ForkAwesome diff --git a/src/IconPacks.Avalonia.ForkAwesome/PackIconForkAwesomeImageExtension.cs b/src/IconPacks.Avalonia.ForkAwesome/PackIconForkAwesomeImageExtension.cs index 2b6f889..5caf5ec 100644 --- a/src/IconPacks.Avalonia.ForkAwesome/PackIconForkAwesomeImageExtension.cs +++ b/src/IconPacks.Avalonia.ForkAwesome/PackIconForkAwesomeImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.ForkAwesome @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconForkAwesomeKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.GameIcons/Converter/PackIconGameIconsKindToImageConverter.cs b/src/IconPacks.Avalonia.GameIcons/Converter/PackIconGameIconsKindToImageConverter.cs index a3eaf44..0d2a317 100644 --- a/src/IconPacks.Avalonia.GameIcons/Converter/PackIconGameIconsKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.GameIcons/Converter/PackIconGameIconsKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.GameIcons.Converter { public class PackIconGameIconsKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconGameIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.GameIcons/PackIconGameIcons.cs b/src/IconPacks.Avalonia.GameIcons/PackIconGameIcons.cs index e4cef7c..170cf0b 100644 --- a/src/IconPacks.Avalonia.GameIcons/PackIconGameIcons.cs +++ b/src/IconPacks.Avalonia.GameIcons/PackIconGameIcons.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.GameIcons/PackIconGameIconsExtension.cs b/src/IconPacks.Avalonia.GameIcons/PackIconGameIconsExtension.cs index 132dac3..d5cea6a 100644 --- a/src/IconPacks.Avalonia.GameIcons/PackIconGameIconsExtension.cs +++ b/src/IconPacks.Avalonia.GameIcons/PackIconGameIconsExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.GameIcons diff --git a/src/IconPacks.Avalonia.GameIcons/PackIconGameIconsImageExtension.cs b/src/IconPacks.Avalonia.GameIcons/PackIconGameIconsImageExtension.cs index d688a3c..1733ce4 100644 --- a/src/IconPacks.Avalonia.GameIcons/PackIconGameIconsImageExtension.cs +++ b/src/IconPacks.Avalonia.GameIcons/PackIconGameIconsImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.GameIcons @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconGameIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Ionicons/Converter/PackIconIoniconsKindToImageConverter.cs b/src/IconPacks.Avalonia.Ionicons/Converter/PackIconIoniconsKindToImageConverter.cs index 1df0a9f..16063ac 100644 --- a/src/IconPacks.Avalonia.Ionicons/Converter/PackIconIoniconsKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.Ionicons/Converter/PackIconIoniconsKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.Ionicons.Converter { public class PackIconIoniconsKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconIoniconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Ionicons/PackIconIonicons.cs b/src/IconPacks.Avalonia.Ionicons/PackIconIonicons.cs index b6f1168..fe5406b 100644 --- a/src/IconPacks.Avalonia.Ionicons/PackIconIonicons.cs +++ b/src/IconPacks.Avalonia.Ionicons/PackIconIonicons.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.Ionicons/PackIconIoniconsExtension.cs b/src/IconPacks.Avalonia.Ionicons/PackIconIoniconsExtension.cs index 9e07de2..4c2cda8 100644 --- a/src/IconPacks.Avalonia.Ionicons/PackIconIoniconsExtension.cs +++ b/src/IconPacks.Avalonia.Ionicons/PackIconIoniconsExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Ionicons diff --git a/src/IconPacks.Avalonia.Ionicons/PackIconIoniconsImageExtension.cs b/src/IconPacks.Avalonia.Ionicons/PackIconIoniconsImageExtension.cs index c211f86..f9ce145 100644 --- a/src/IconPacks.Avalonia.Ionicons/PackIconIoniconsImageExtension.cs +++ b/src/IconPacks.Avalonia.Ionicons/PackIconIoniconsImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Ionicons @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconIoniconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.JamIcons/Converter/PackIconJamIconsKindToImageConverter.cs b/src/IconPacks.Avalonia.JamIcons/Converter/PackIconJamIconsKindToImageConverter.cs index 5ab883a..9810142 100644 --- a/src/IconPacks.Avalonia.JamIcons/Converter/PackIconJamIconsKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.JamIcons/Converter/PackIconJamIconsKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.JamIcons.Converter { public class PackIconJamIconsKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconJamIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.JamIcons/PackIconJamIcons.cs b/src/IconPacks.Avalonia.JamIcons/PackIconJamIcons.cs index ab31578..b9bd155 100644 --- a/src/IconPacks.Avalonia.JamIcons/PackIconJamIcons.cs +++ b/src/IconPacks.Avalonia.JamIcons/PackIconJamIcons.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.JamIcons/PackIconJamIconsExtension.cs b/src/IconPacks.Avalonia.JamIcons/PackIconJamIconsExtension.cs index 08a2bc6..662b4fe 100644 --- a/src/IconPacks.Avalonia.JamIcons/PackIconJamIconsExtension.cs +++ b/src/IconPacks.Avalonia.JamIcons/PackIconJamIconsExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.JamIcons diff --git a/src/IconPacks.Avalonia.JamIcons/PackIconJamIconsImageExtension.cs b/src/IconPacks.Avalonia.JamIcons/PackIconJamIconsImageExtension.cs index 8452fed..aa13a98 100644 --- a/src/IconPacks.Avalonia.JamIcons/PackIconJamIconsImageExtension.cs +++ b/src/IconPacks.Avalonia.JamIcons/PackIconJamIconsImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.JamIcons @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconJamIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.KeyruneIcons/Converter/PackIconKeyruneIconsKindToImageConverter.cs b/src/IconPacks.Avalonia.KeyruneIcons/Converter/PackIconKeyruneIconsKindToImageConverter.cs index 1ea141f..8b668d1 100644 --- a/src/IconPacks.Avalonia.KeyruneIcons/Converter/PackIconKeyruneIconsKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.KeyruneIcons/Converter/PackIconKeyruneIconsKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.KeyruneIcons.Converter { public class PackIconKeyruneIconsKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconKeyruneIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.KeyruneIcons/PackIconKeyruneIcons.cs b/src/IconPacks.Avalonia.KeyruneIcons/PackIconKeyruneIcons.cs index 6224f74..a4661a1 100644 --- a/src/IconPacks.Avalonia.KeyruneIcons/PackIconKeyruneIcons.cs +++ b/src/IconPacks.Avalonia.KeyruneIcons/PackIconKeyruneIcons.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.KeyruneIcons/PackIconKeyruneIconsExtension.cs b/src/IconPacks.Avalonia.KeyruneIcons/PackIconKeyruneIconsExtension.cs index 8690793..3c4674c 100644 --- a/src/IconPacks.Avalonia.KeyruneIcons/PackIconKeyruneIconsExtension.cs +++ b/src/IconPacks.Avalonia.KeyruneIcons/PackIconKeyruneIconsExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.KeyruneIcons diff --git a/src/IconPacks.Avalonia.KeyruneIcons/PackIconKeyruneIconsImageExtension.cs b/src/IconPacks.Avalonia.KeyruneIcons/PackIconKeyruneIconsImageExtension.cs index 05fa55c..c5d3f2e 100644 --- a/src/IconPacks.Avalonia.KeyruneIcons/PackIconKeyruneIconsImageExtension.cs +++ b/src/IconPacks.Avalonia.KeyruneIcons/PackIconKeyruneIconsImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.KeyruneIcons @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconKeyruneIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Lucide/Converter/PackIconLucideKindToImageConverter.cs b/src/IconPacks.Avalonia.Lucide/Converter/PackIconLucideKindToImageConverter.cs index 907ace6..4694390 100644 --- a/src/IconPacks.Avalonia.Lucide/Converter/PackIconLucideKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.Lucide/Converter/PackIconLucideKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.Lucide.Converter { public class PackIconLucideKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconLucideKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Lucide/PackIconLucide.cs b/src/IconPacks.Avalonia.Lucide/PackIconLucide.cs index 7dd560d..749e383 100644 --- a/src/IconPacks.Avalonia.Lucide/PackIconLucide.cs +++ b/src/IconPacks.Avalonia.Lucide/PackIconLucide.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.Lucide/PackIconLucideExtension.cs b/src/IconPacks.Avalonia.Lucide/PackIconLucideExtension.cs index 80171b2..a8ee6c9 100644 --- a/src/IconPacks.Avalonia.Lucide/PackIconLucideExtension.cs +++ b/src/IconPacks.Avalonia.Lucide/PackIconLucideExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Lucide diff --git a/src/IconPacks.Avalonia.Lucide/PackIconLucideImageExtension.cs b/src/IconPacks.Avalonia.Lucide/PackIconLucideImageExtension.cs index 6f927ef..c3f6e07 100644 --- a/src/IconPacks.Avalonia.Lucide/PackIconLucideImageExtension.cs +++ b/src/IconPacks.Avalonia.Lucide/PackIconLucideImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Lucide @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconLucideKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Material/Converter/PackIconMaterialKindToImageConverter.cs b/src/IconPacks.Avalonia.Material/Converter/PackIconMaterialKindToImageConverter.cs index c412c61..3d782a7 100644 --- a/src/IconPacks.Avalonia.Material/Converter/PackIconMaterialKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.Material/Converter/PackIconMaterialKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.Material.Converter { public class PackIconMaterialKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconMaterialKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Material/PackIconMaterial.cs b/src/IconPacks.Avalonia.Material/PackIconMaterial.cs index 8f31b37..5fca1ed 100644 --- a/src/IconPacks.Avalonia.Material/PackIconMaterial.cs +++ b/src/IconPacks.Avalonia.Material/PackIconMaterial.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.Material/PackIconMaterialExtension.cs b/src/IconPacks.Avalonia.Material/PackIconMaterialExtension.cs index 388de52..89e395e 100644 --- a/src/IconPacks.Avalonia.Material/PackIconMaterialExtension.cs +++ b/src/IconPacks.Avalonia.Material/PackIconMaterialExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Material diff --git a/src/IconPacks.Avalonia.Material/PackIconMaterialImageExtension.cs b/src/IconPacks.Avalonia.Material/PackIconMaterialImageExtension.cs index 7efc64c..9c40e22 100644 --- a/src/IconPacks.Avalonia.Material/PackIconMaterialImageExtension.cs +++ b/src/IconPacks.Avalonia.Material/PackIconMaterialImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Material @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconMaterialKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.MaterialDesign/Converter/PackIconMaterialDesignKindToImageConverter.cs b/src/IconPacks.Avalonia.MaterialDesign/Converter/PackIconMaterialDesignKindToImageConverter.cs index ab00b08..111e5e2 100644 --- a/src/IconPacks.Avalonia.MaterialDesign/Converter/PackIconMaterialDesignKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.MaterialDesign/Converter/PackIconMaterialDesignKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.MaterialDesign.Converter { public class PackIconMaterialDesignKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconMaterialDesignKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.MaterialDesign/PackIconMaterialDesign.cs b/src/IconPacks.Avalonia.MaterialDesign/PackIconMaterialDesign.cs index 5f5eda1..d41a17a 100644 --- a/src/IconPacks.Avalonia.MaterialDesign/PackIconMaterialDesign.cs +++ b/src/IconPacks.Avalonia.MaterialDesign/PackIconMaterialDesign.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.MaterialDesign/PackIconMaterialDesignExtension.cs b/src/IconPacks.Avalonia.MaterialDesign/PackIconMaterialDesignExtension.cs index 59eb13b..8d9ce26 100644 --- a/src/IconPacks.Avalonia.MaterialDesign/PackIconMaterialDesignExtension.cs +++ b/src/IconPacks.Avalonia.MaterialDesign/PackIconMaterialDesignExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.MaterialDesign diff --git a/src/IconPacks.Avalonia.MaterialDesign/PackIconMaterialDesignImageExtension.cs b/src/IconPacks.Avalonia.MaterialDesign/PackIconMaterialDesignImageExtension.cs index 7c9fba0..28393d2 100644 --- a/src/IconPacks.Avalonia.MaterialDesign/PackIconMaterialDesignImageExtension.cs +++ b/src/IconPacks.Avalonia.MaterialDesign/PackIconMaterialDesignImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.MaterialDesign @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconMaterialDesignKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.MaterialLight/Converter/PackIconMaterialLightKindToImageConverter.cs b/src/IconPacks.Avalonia.MaterialLight/Converter/PackIconMaterialLightKindToImageConverter.cs index 3b65c98..bc9b901 100644 --- a/src/IconPacks.Avalonia.MaterialLight/Converter/PackIconMaterialLightKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.MaterialLight/Converter/PackIconMaterialLightKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.MaterialLight.Converter { public class PackIconMaterialLightKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconMaterialLightKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.MaterialLight/PackIconMaterialLight.cs b/src/IconPacks.Avalonia.MaterialLight/PackIconMaterialLight.cs index 7d3f2ba..7c71b45 100644 --- a/src/IconPacks.Avalonia.MaterialLight/PackIconMaterialLight.cs +++ b/src/IconPacks.Avalonia.MaterialLight/PackIconMaterialLight.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.MaterialLight/PackIconMaterialLightExtension.cs b/src/IconPacks.Avalonia.MaterialLight/PackIconMaterialLightExtension.cs index 8db9fc8..d8a9b0c 100644 --- a/src/IconPacks.Avalonia.MaterialLight/PackIconMaterialLightExtension.cs +++ b/src/IconPacks.Avalonia.MaterialLight/PackIconMaterialLightExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.MaterialLight diff --git a/src/IconPacks.Avalonia.MaterialLight/PackIconMaterialLightImageExtension.cs b/src/IconPacks.Avalonia.MaterialLight/PackIconMaterialLightImageExtension.cs index 0bebda8..3ea2a70 100644 --- a/src/IconPacks.Avalonia.MaterialLight/PackIconMaterialLightImageExtension.cs +++ b/src/IconPacks.Avalonia.MaterialLight/PackIconMaterialLightImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.MaterialLight @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconMaterialLightKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.MemoryIcons/Converter/PackIconMemoryIconsKindToImageConverter.cs b/src/IconPacks.Avalonia.MemoryIcons/Converter/PackIconMemoryIconsKindToImageConverter.cs index 9734555..380fbfe 100644 --- a/src/IconPacks.Avalonia.MemoryIcons/Converter/PackIconMemoryIconsKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.MemoryIcons/Converter/PackIconMemoryIconsKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.MemoryIcons.Converter { public class PackIconMemoryIconsKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconMemoryIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.MemoryIcons/PackIconMemoryIcons.cs b/src/IconPacks.Avalonia.MemoryIcons/PackIconMemoryIcons.cs index 4197ba9..36c690c 100644 --- a/src/IconPacks.Avalonia.MemoryIcons/PackIconMemoryIcons.cs +++ b/src/IconPacks.Avalonia.MemoryIcons/PackIconMemoryIcons.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.MemoryIcons/PackIconMemoryIconsExtension.cs b/src/IconPacks.Avalonia.MemoryIcons/PackIconMemoryIconsExtension.cs index fa4b797..2653c67 100644 --- a/src/IconPacks.Avalonia.MemoryIcons/PackIconMemoryIconsExtension.cs +++ b/src/IconPacks.Avalonia.MemoryIcons/PackIconMemoryIconsExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.MemoryIcons diff --git a/src/IconPacks.Avalonia.MemoryIcons/PackIconMemoryIconsImageExtension.cs b/src/IconPacks.Avalonia.MemoryIcons/PackIconMemoryIconsImageExtension.cs index 426c8e6..11227e3 100644 --- a/src/IconPacks.Avalonia.MemoryIcons/PackIconMemoryIconsImageExtension.cs +++ b/src/IconPacks.Avalonia.MemoryIcons/PackIconMemoryIconsImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.MemoryIcons @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconMemoryIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Microns/Converter/PackIconMicronsKindToImageConverter.cs b/src/IconPacks.Avalonia.Microns/Converter/PackIconMicronsKindToImageConverter.cs index 121d742..f42a610 100644 --- a/src/IconPacks.Avalonia.Microns/Converter/PackIconMicronsKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.Microns/Converter/PackIconMicronsKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.Microns.Converter { public class PackIconMicronsKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconMicronsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Microns/PackIconMicrons.cs b/src/IconPacks.Avalonia.Microns/PackIconMicrons.cs index 70800f8..1a5b08e 100644 --- a/src/IconPacks.Avalonia.Microns/PackIconMicrons.cs +++ b/src/IconPacks.Avalonia.Microns/PackIconMicrons.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.Microns/PackIconMicronsExtension.cs b/src/IconPacks.Avalonia.Microns/PackIconMicronsExtension.cs index 31d71e8..4b1ad06 100644 --- a/src/IconPacks.Avalonia.Microns/PackIconMicronsExtension.cs +++ b/src/IconPacks.Avalonia.Microns/PackIconMicronsExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Microns diff --git a/src/IconPacks.Avalonia.Microns/PackIconMicronsImageExtension.cs b/src/IconPacks.Avalonia.Microns/PackIconMicronsImageExtension.cs index ade945d..9e7cd0b 100644 --- a/src/IconPacks.Avalonia.Microns/PackIconMicronsImageExtension.cs +++ b/src/IconPacks.Avalonia.Microns/PackIconMicronsImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Microns @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconMicronsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.MingCuteIcons/Converter/PackIconMingCuteIconsKindToImageConverter.cs b/src/IconPacks.Avalonia.MingCuteIcons/Converter/PackIconMingCuteIconsKindToImageConverter.cs index b6199f3..e1b50a4 100644 --- a/src/IconPacks.Avalonia.MingCuteIcons/Converter/PackIconMingCuteIconsKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.MingCuteIcons/Converter/PackIconMingCuteIconsKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.MingCuteIcons.Converter { public class PackIconMingCuteIconsKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconMingCuteIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.MingCuteIcons/PackIconMingCuteIcons.cs b/src/IconPacks.Avalonia.MingCuteIcons/PackIconMingCuteIcons.cs index 5fc3e90..11d3e69 100644 --- a/src/IconPacks.Avalonia.MingCuteIcons/PackIconMingCuteIcons.cs +++ b/src/IconPacks.Avalonia.MingCuteIcons/PackIconMingCuteIcons.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.MingCuteIcons/PackIconMingCuteIconsExtension.cs b/src/IconPacks.Avalonia.MingCuteIcons/PackIconMingCuteIconsExtension.cs index fbba017..ed01941 100644 --- a/src/IconPacks.Avalonia.MingCuteIcons/PackIconMingCuteIconsExtension.cs +++ b/src/IconPacks.Avalonia.MingCuteIcons/PackIconMingCuteIconsExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.MingCuteIcons diff --git a/src/IconPacks.Avalonia.MingCuteIcons/PackIconMingCuteIconsImageExtension.cs b/src/IconPacks.Avalonia.MingCuteIcons/PackIconMingCuteIconsImageExtension.cs index 2b0d4a8..7932e2e 100644 --- a/src/IconPacks.Avalonia.MingCuteIcons/PackIconMingCuteIconsImageExtension.cs +++ b/src/IconPacks.Avalonia.MingCuteIcons/PackIconMingCuteIconsImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.MingCuteIcons @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconMingCuteIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Modern/Converter/PackIconModernKindToImageConverter.cs b/src/IconPacks.Avalonia.Modern/Converter/PackIconModernKindToImageConverter.cs index 479bb1b..b141ff4 100644 --- a/src/IconPacks.Avalonia.Modern/Converter/PackIconModernKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.Modern/Converter/PackIconModernKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.Modern.Converter { public class PackIconModernKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconModernKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Modern/PackIconModern.cs b/src/IconPacks.Avalonia.Modern/PackIconModern.cs index da3f51a..1cf01f6 100644 --- a/src/IconPacks.Avalonia.Modern/PackIconModern.cs +++ b/src/IconPacks.Avalonia.Modern/PackIconModern.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.Modern/PackIconModernExtension.cs b/src/IconPacks.Avalonia.Modern/PackIconModernExtension.cs index b53dd54..3f86bb3 100644 --- a/src/IconPacks.Avalonia.Modern/PackIconModernExtension.cs +++ b/src/IconPacks.Avalonia.Modern/PackIconModernExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Modern diff --git a/src/IconPacks.Avalonia.Modern/PackIconModernImageExtension.cs b/src/IconPacks.Avalonia.Modern/PackIconModernImageExtension.cs index 06bedfc..5b4d97c 100644 --- a/src/IconPacks.Avalonia.Modern/PackIconModernImageExtension.cs +++ b/src/IconPacks.Avalonia.Modern/PackIconModernImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Modern @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconModernKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.MynaUIIcons/Converter/PackIconMynaUIIconsKindToImageConverter.cs b/src/IconPacks.Avalonia.MynaUIIcons/Converter/PackIconMynaUIIconsKindToImageConverter.cs index 0d25d60..a24f5cc 100644 --- a/src/IconPacks.Avalonia.MynaUIIcons/Converter/PackIconMynaUIIconsKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.MynaUIIcons/Converter/PackIconMynaUIIconsKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.MynaUIIcons.Converter { public class PackIconMynaUIIconsKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconMynaUIIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.MynaUIIcons/PackIconMynaUIIcons.cs b/src/IconPacks.Avalonia.MynaUIIcons/PackIconMynaUIIcons.cs index 555476b..892a8b0 100644 --- a/src/IconPacks.Avalonia.MynaUIIcons/PackIconMynaUIIcons.cs +++ b/src/IconPacks.Avalonia.MynaUIIcons/PackIconMynaUIIcons.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.MynaUIIcons/PackIconMynaUIIconsExtension.cs b/src/IconPacks.Avalonia.MynaUIIcons/PackIconMynaUIIconsExtension.cs index bc6e697..6e01b4c 100644 --- a/src/IconPacks.Avalonia.MynaUIIcons/PackIconMynaUIIconsExtension.cs +++ b/src/IconPacks.Avalonia.MynaUIIcons/PackIconMynaUIIconsExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.MynaUIIcons diff --git a/src/IconPacks.Avalonia.MynaUIIcons/PackIconMynaUIIconsImageExtension.cs b/src/IconPacks.Avalonia.MynaUIIcons/PackIconMynaUIIconsImageExtension.cs index 99c45dc..b132040 100644 --- a/src/IconPacks.Avalonia.MynaUIIcons/PackIconMynaUIIconsImageExtension.cs +++ b/src/IconPacks.Avalonia.MynaUIIcons/PackIconMynaUIIconsImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.MynaUIIcons @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconMynaUIIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Octicons/Converter/PackIconOcticonsKindToImageConverter.cs b/src/IconPacks.Avalonia.Octicons/Converter/PackIconOcticonsKindToImageConverter.cs index 082c731..be15827 100644 --- a/src/IconPacks.Avalonia.Octicons/Converter/PackIconOcticonsKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.Octicons/Converter/PackIconOcticonsKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.Octicons.Converter { public class PackIconOcticonsKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconOcticonsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Octicons/PackIconOcticons.cs b/src/IconPacks.Avalonia.Octicons/PackIconOcticons.cs index 4c3029b..863e439 100644 --- a/src/IconPacks.Avalonia.Octicons/PackIconOcticons.cs +++ b/src/IconPacks.Avalonia.Octicons/PackIconOcticons.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.Octicons/PackIconOcticonsExtension.cs b/src/IconPacks.Avalonia.Octicons/PackIconOcticonsExtension.cs index 6c69ba3..b75bf1a 100644 --- a/src/IconPacks.Avalonia.Octicons/PackIconOcticonsExtension.cs +++ b/src/IconPacks.Avalonia.Octicons/PackIconOcticonsExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Octicons diff --git a/src/IconPacks.Avalonia.Octicons/PackIconOcticonsImageExtension.cs b/src/IconPacks.Avalonia.Octicons/PackIconOcticonsImageExtension.cs index f5f1463..c0e6e45 100644 --- a/src/IconPacks.Avalonia.Octicons/PackIconOcticonsImageExtension.cs +++ b/src/IconPacks.Avalonia.Octicons/PackIconOcticonsImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Octicons @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconOcticonsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.PhosphorIcons/Converter/PackIconPhosphorIconsKindToImageConverter.cs b/src/IconPacks.Avalonia.PhosphorIcons/Converter/PackIconPhosphorIconsKindToImageConverter.cs index 642112f..c3d2df9 100644 --- a/src/IconPacks.Avalonia.PhosphorIcons/Converter/PackIconPhosphorIconsKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.PhosphorIcons/Converter/PackIconPhosphorIconsKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.PhosphorIcons.Converter { public class PackIconPhosphorIconsKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconPhosphorIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.PhosphorIcons/PackIconPhosphorIcons.cs b/src/IconPacks.Avalonia.PhosphorIcons/PackIconPhosphorIcons.cs index a355adf..42de03b 100644 --- a/src/IconPacks.Avalonia.PhosphorIcons/PackIconPhosphorIcons.cs +++ b/src/IconPacks.Avalonia.PhosphorIcons/PackIconPhosphorIcons.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.PhosphorIcons/PackIconPhosphorIconsExtension.cs b/src/IconPacks.Avalonia.PhosphorIcons/PackIconPhosphorIconsExtension.cs index e1c93d4..beaf1bb 100644 --- a/src/IconPacks.Avalonia.PhosphorIcons/PackIconPhosphorIconsExtension.cs +++ b/src/IconPacks.Avalonia.PhosphorIcons/PackIconPhosphorIconsExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.PhosphorIcons diff --git a/src/IconPacks.Avalonia.PhosphorIcons/PackIconPhosphorIconsImageExtension.cs b/src/IconPacks.Avalonia.PhosphorIcons/PackIconPhosphorIconsImageExtension.cs index 91e6bad..f6a8b72 100644 --- a/src/IconPacks.Avalonia.PhosphorIcons/PackIconPhosphorIconsImageExtension.cs +++ b/src/IconPacks.Avalonia.PhosphorIcons/PackIconPhosphorIconsImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.PhosphorIcons @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconPhosphorIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.PicolIcons/Converter/PackIconPicolIconsKindToImageConverter.cs b/src/IconPacks.Avalonia.PicolIcons/Converter/PackIconPicolIconsKindToImageConverter.cs index fe6da36..6f7b5d4 100644 --- a/src/IconPacks.Avalonia.PicolIcons/Converter/PackIconPicolIconsKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.PicolIcons/Converter/PackIconPicolIconsKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.PicolIcons.Converter { public class PackIconPicolIconsKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconPicolIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.PicolIcons/PackIconPicolIcons.cs b/src/IconPacks.Avalonia.PicolIcons/PackIconPicolIcons.cs index a406140..b21d05a 100644 --- a/src/IconPacks.Avalonia.PicolIcons/PackIconPicolIcons.cs +++ b/src/IconPacks.Avalonia.PicolIcons/PackIconPicolIcons.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.PicolIcons/PackIconPicolIconsExtension.cs b/src/IconPacks.Avalonia.PicolIcons/PackIconPicolIconsExtension.cs index cd4d691..88b4d86 100644 --- a/src/IconPacks.Avalonia.PicolIcons/PackIconPicolIconsExtension.cs +++ b/src/IconPacks.Avalonia.PicolIcons/PackIconPicolIconsExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.PicolIcons diff --git a/src/IconPacks.Avalonia.PicolIcons/PackIconPicolIconsImageExtension.cs b/src/IconPacks.Avalonia.PicolIcons/PackIconPicolIconsImageExtension.cs index e303eca..ece617e 100644 --- a/src/IconPacks.Avalonia.PicolIcons/PackIconPicolIconsImageExtension.cs +++ b/src/IconPacks.Avalonia.PicolIcons/PackIconPicolIconsImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.PicolIcons @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconPicolIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.PixelartIcons/Converter/PackIconPixelartIconsKindToImageConverter.cs b/src/IconPacks.Avalonia.PixelartIcons/Converter/PackIconPixelartIconsKindToImageConverter.cs index 927fd01..9b74cc4 100644 --- a/src/IconPacks.Avalonia.PixelartIcons/Converter/PackIconPixelartIconsKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.PixelartIcons/Converter/PackIconPixelartIconsKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.PixelartIcons.Converter { public class PackIconPixelartIconsKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconPixelartIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.PixelartIcons/PackIconPixelartIcons.cs b/src/IconPacks.Avalonia.PixelartIcons/PackIconPixelartIcons.cs index 290f2b6..265bfb5 100644 --- a/src/IconPacks.Avalonia.PixelartIcons/PackIconPixelartIcons.cs +++ b/src/IconPacks.Avalonia.PixelartIcons/PackIconPixelartIcons.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.PixelartIcons/PackIconPixelartIconsExtension.cs b/src/IconPacks.Avalonia.PixelartIcons/PackIconPixelartIconsExtension.cs index 328c584..4596565 100644 --- a/src/IconPacks.Avalonia.PixelartIcons/PackIconPixelartIconsExtension.cs +++ b/src/IconPacks.Avalonia.PixelartIcons/PackIconPixelartIconsExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.PixelartIcons diff --git a/src/IconPacks.Avalonia.PixelartIcons/PackIconPixelartIconsImageExtension.cs b/src/IconPacks.Avalonia.PixelartIcons/PackIconPixelartIconsImageExtension.cs index 1f47f18..2e91fc0 100644 --- a/src/IconPacks.Avalonia.PixelartIcons/PackIconPixelartIconsImageExtension.cs +++ b/src/IconPacks.Avalonia.PixelartIcons/PackIconPixelartIconsImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.PixelartIcons @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconPixelartIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.RPGAwesome/Converter/PackIconRPGAwesomeKindToImageConverter.cs b/src/IconPacks.Avalonia.RPGAwesome/Converter/PackIconRPGAwesomeKindToImageConverter.cs index 0b08d8b..ecf5fb2 100644 --- a/src/IconPacks.Avalonia.RPGAwesome/Converter/PackIconRPGAwesomeKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.RPGAwesome/Converter/PackIconRPGAwesomeKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.RPGAwesome.Converter { public class PackIconRPGAwesomeKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconRPGAwesomeKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.RPGAwesome/PackIconRPGAwesome.cs b/src/IconPacks.Avalonia.RPGAwesome/PackIconRPGAwesome.cs index 5085cf0..60107de 100644 --- a/src/IconPacks.Avalonia.RPGAwesome/PackIconRPGAwesome.cs +++ b/src/IconPacks.Avalonia.RPGAwesome/PackIconRPGAwesome.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.RPGAwesome/PackIconRPGAwesomeExtension.cs b/src/IconPacks.Avalonia.RPGAwesome/PackIconRPGAwesomeExtension.cs index a351f09..a9295f2 100644 --- a/src/IconPacks.Avalonia.RPGAwesome/PackIconRPGAwesomeExtension.cs +++ b/src/IconPacks.Avalonia.RPGAwesome/PackIconRPGAwesomeExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.RPGAwesome diff --git a/src/IconPacks.Avalonia.RPGAwesome/PackIconRPGAwesomeImageExtension.cs b/src/IconPacks.Avalonia.RPGAwesome/PackIconRPGAwesomeImageExtension.cs index 4ed7b94..b89e6c4 100644 --- a/src/IconPacks.Avalonia.RPGAwesome/PackIconRPGAwesomeImageExtension.cs +++ b/src/IconPacks.Avalonia.RPGAwesome/PackIconRPGAwesomeImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.RPGAwesome @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconRPGAwesomeKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.RadixIcons/Converter/PackIconRadixIconsKindToImageConverter.cs b/src/IconPacks.Avalonia.RadixIcons/Converter/PackIconRadixIconsKindToImageConverter.cs index 18d1497..8446eba 100644 --- a/src/IconPacks.Avalonia.RadixIcons/Converter/PackIconRadixIconsKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.RadixIcons/Converter/PackIconRadixIconsKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.RadixIcons.Converter { public class PackIconRadixIconsKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconRadixIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.RadixIcons/PackIconRadixIcons.cs b/src/IconPacks.Avalonia.RadixIcons/PackIconRadixIcons.cs index cdfdab5..e30909a 100644 --- a/src/IconPacks.Avalonia.RadixIcons/PackIconRadixIcons.cs +++ b/src/IconPacks.Avalonia.RadixIcons/PackIconRadixIcons.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.RadixIcons/PackIconRadixIconsExtension.cs b/src/IconPacks.Avalonia.RadixIcons/PackIconRadixIconsExtension.cs index 4ba0266..61a94ca 100644 --- a/src/IconPacks.Avalonia.RadixIcons/PackIconRadixIconsExtension.cs +++ b/src/IconPacks.Avalonia.RadixIcons/PackIconRadixIconsExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.RadixIcons diff --git a/src/IconPacks.Avalonia.RadixIcons/PackIconRadixIconsImageExtension.cs b/src/IconPacks.Avalonia.RadixIcons/PackIconRadixIconsImageExtension.cs index bf09560..35cb9aa 100644 --- a/src/IconPacks.Avalonia.RadixIcons/PackIconRadixIconsImageExtension.cs +++ b/src/IconPacks.Avalonia.RadixIcons/PackIconRadixIconsImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.RadixIcons @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconRadixIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.RemixIcon/Converter/PackIconRemixIconKindToImageConverter.cs b/src/IconPacks.Avalonia.RemixIcon/Converter/PackIconRemixIconKindToImageConverter.cs index 93814cf..322abfe 100644 --- a/src/IconPacks.Avalonia.RemixIcon/Converter/PackIconRemixIconKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.RemixIcon/Converter/PackIconRemixIconKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.RemixIcon.Converter { public class PackIconRemixIconKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconRemixIconKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.RemixIcon/PackIconRemixIcon.cs b/src/IconPacks.Avalonia.RemixIcon/PackIconRemixIcon.cs index ce1c0aa..4ba67fb 100644 --- a/src/IconPacks.Avalonia.RemixIcon/PackIconRemixIcon.cs +++ b/src/IconPacks.Avalonia.RemixIcon/PackIconRemixIcon.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.RemixIcon/PackIconRemixIconExtension.cs b/src/IconPacks.Avalonia.RemixIcon/PackIconRemixIconExtension.cs index 49595c7..9806592 100644 --- a/src/IconPacks.Avalonia.RemixIcon/PackIconRemixIconExtension.cs +++ b/src/IconPacks.Avalonia.RemixIcon/PackIconRemixIconExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.RemixIcon diff --git a/src/IconPacks.Avalonia.RemixIcon/PackIconRemixIconImageExtension.cs b/src/IconPacks.Avalonia.RemixIcon/PackIconRemixIconImageExtension.cs index 20861c9..7491b05 100644 --- a/src/IconPacks.Avalonia.RemixIcon/PackIconRemixIconImageExtension.cs +++ b/src/IconPacks.Avalonia.RemixIcon/PackIconRemixIconImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.RemixIcon @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconRemixIconKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.SimpleIcons/Converter/PackIconSimpleIconsKindToImageConverter.cs b/src/IconPacks.Avalonia.SimpleIcons/Converter/PackIconSimpleIconsKindToImageConverter.cs index 93b331a..923b691 100644 --- a/src/IconPacks.Avalonia.SimpleIcons/Converter/PackIconSimpleIconsKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.SimpleIcons/Converter/PackIconSimpleIconsKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.SimpleIcons.Converter { public class PackIconSimpleIconsKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconSimpleIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.SimpleIcons/PackIconSimpleIcons.cs b/src/IconPacks.Avalonia.SimpleIcons/PackIconSimpleIcons.cs index 78f9e24..d403078 100644 --- a/src/IconPacks.Avalonia.SimpleIcons/PackIconSimpleIcons.cs +++ b/src/IconPacks.Avalonia.SimpleIcons/PackIconSimpleIcons.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.SimpleIcons/PackIconSimpleIconsExtension.cs b/src/IconPacks.Avalonia.SimpleIcons/PackIconSimpleIconsExtension.cs index 0c857c0..f9b6e6e 100644 --- a/src/IconPacks.Avalonia.SimpleIcons/PackIconSimpleIconsExtension.cs +++ b/src/IconPacks.Avalonia.SimpleIcons/PackIconSimpleIconsExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.SimpleIcons diff --git a/src/IconPacks.Avalonia.SimpleIcons/PackIconSimpleIconsImageExtension.cs b/src/IconPacks.Avalonia.SimpleIcons/PackIconSimpleIconsImageExtension.cs index 0872106..0d648e6 100644 --- a/src/IconPacks.Avalonia.SimpleIcons/PackIconSimpleIconsImageExtension.cs +++ b/src/IconPacks.Avalonia.SimpleIcons/PackIconSimpleIconsImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.SimpleIcons @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconSimpleIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Typicons/Converter/PackIconTypiconsKindToImageConverter.cs b/src/IconPacks.Avalonia.Typicons/Converter/PackIconTypiconsKindToImageConverter.cs index 84377b4..a7e6341 100644 --- a/src/IconPacks.Avalonia.Typicons/Converter/PackIconTypiconsKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.Typicons/Converter/PackIconTypiconsKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.Typicons.Converter { public class PackIconTypiconsKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconTypiconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Typicons/PackIconTypicons.cs b/src/IconPacks.Avalonia.Typicons/PackIconTypicons.cs index 1f9e824..2bd40b8 100644 --- a/src/IconPacks.Avalonia.Typicons/PackIconTypicons.cs +++ b/src/IconPacks.Avalonia.Typicons/PackIconTypicons.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.Typicons/PackIconTypiconsExtension.cs b/src/IconPacks.Avalonia.Typicons/PackIconTypiconsExtension.cs index 1684c6b..2e2578b 100644 --- a/src/IconPacks.Avalonia.Typicons/PackIconTypiconsExtension.cs +++ b/src/IconPacks.Avalonia.Typicons/PackIconTypiconsExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Typicons diff --git a/src/IconPacks.Avalonia.Typicons/PackIconTypiconsImageExtension.cs b/src/IconPacks.Avalonia.Typicons/PackIconTypiconsImageExtension.cs index 09bdc6a..75c63fa 100644 --- a/src/IconPacks.Avalonia.Typicons/PackIconTypiconsImageExtension.cs +++ b/src/IconPacks.Avalonia.Typicons/PackIconTypiconsImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Typicons @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconTypiconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Unicons/Converter/PackIconUniconsKindToImageConverter.cs b/src/IconPacks.Avalonia.Unicons/Converter/PackIconUniconsKindToImageConverter.cs index 938e1d7..8815282 100644 --- a/src/IconPacks.Avalonia.Unicons/Converter/PackIconUniconsKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.Unicons/Converter/PackIconUniconsKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.Unicons.Converter { public class PackIconUniconsKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconUniconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Unicons/PackIconUnicons.cs b/src/IconPacks.Avalonia.Unicons/PackIconUnicons.cs index f0a9409..bff4d97 100644 --- a/src/IconPacks.Avalonia.Unicons/PackIconUnicons.cs +++ b/src/IconPacks.Avalonia.Unicons/PackIconUnicons.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.Unicons/PackIconUniconsExtension.cs b/src/IconPacks.Avalonia.Unicons/PackIconUniconsExtension.cs index ae30105..f302efa 100644 --- a/src/IconPacks.Avalonia.Unicons/PackIconUniconsExtension.cs +++ b/src/IconPacks.Avalonia.Unicons/PackIconUniconsExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Unicons diff --git a/src/IconPacks.Avalonia.Unicons/PackIconUniconsImageExtension.cs b/src/IconPacks.Avalonia.Unicons/PackIconUniconsImageExtension.cs index 9320c61..c13739c 100644 --- a/src/IconPacks.Avalonia.Unicons/PackIconUniconsImageExtension.cs +++ b/src/IconPacks.Avalonia.Unicons/PackIconUniconsImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Unicons @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconUniconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.VaadinIcons/Converter/PackIconVaadinIconsKindToImageConverter.cs b/src/IconPacks.Avalonia.VaadinIcons/Converter/PackIconVaadinIconsKindToImageConverter.cs index 8d4fe1c..ff3b0e9 100644 --- a/src/IconPacks.Avalonia.VaadinIcons/Converter/PackIconVaadinIconsKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.VaadinIcons/Converter/PackIconVaadinIconsKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.VaadinIcons.Converter { public class PackIconVaadinIconsKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconVaadinIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.VaadinIcons/PackIconVaadinIcons.cs b/src/IconPacks.Avalonia.VaadinIcons/PackIconVaadinIcons.cs index 6cde0a0..34201d1 100644 --- a/src/IconPacks.Avalonia.VaadinIcons/PackIconVaadinIcons.cs +++ b/src/IconPacks.Avalonia.VaadinIcons/PackIconVaadinIcons.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.VaadinIcons/PackIconVaadinIconsExtension.cs b/src/IconPacks.Avalonia.VaadinIcons/PackIconVaadinIconsExtension.cs index 1f55219..3989b1a 100644 --- a/src/IconPacks.Avalonia.VaadinIcons/PackIconVaadinIconsExtension.cs +++ b/src/IconPacks.Avalonia.VaadinIcons/PackIconVaadinIconsExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.VaadinIcons diff --git a/src/IconPacks.Avalonia.VaadinIcons/PackIconVaadinIconsImageExtension.cs b/src/IconPacks.Avalonia.VaadinIcons/PackIconVaadinIconsImageExtension.cs index b1fc2e6..d150d5e 100644 --- a/src/IconPacks.Avalonia.VaadinIcons/PackIconVaadinIconsImageExtension.cs +++ b/src/IconPacks.Avalonia.VaadinIcons/PackIconVaadinIconsImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.VaadinIcons @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconVaadinIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.WeatherIcons/Converter/PackIconWeatherIconsKindToImageConverter.cs b/src/IconPacks.Avalonia.WeatherIcons/Converter/PackIconWeatherIconsKindToImageConverter.cs index bc0319e..f94f8f6 100644 --- a/src/IconPacks.Avalonia.WeatherIcons/Converter/PackIconWeatherIconsKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.WeatherIcons/Converter/PackIconWeatherIconsKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.WeatherIcons.Converter { public class PackIconWeatherIconsKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconWeatherIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.WeatherIcons/PackIconWeatherIcons.cs b/src/IconPacks.Avalonia.WeatherIcons/PackIconWeatherIcons.cs index c645bd5..8318b82 100644 --- a/src/IconPacks.Avalonia.WeatherIcons/PackIconWeatherIcons.cs +++ b/src/IconPacks.Avalonia.WeatherIcons/PackIconWeatherIcons.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.WeatherIcons/PackIconWeatherIconsExtension.cs b/src/IconPacks.Avalonia.WeatherIcons/PackIconWeatherIconsExtension.cs index f645376..7262ab0 100644 --- a/src/IconPacks.Avalonia.WeatherIcons/PackIconWeatherIconsExtension.cs +++ b/src/IconPacks.Avalonia.WeatherIcons/PackIconWeatherIconsExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.WeatherIcons diff --git a/src/IconPacks.Avalonia.WeatherIcons/PackIconWeatherIconsImageExtension.cs b/src/IconPacks.Avalonia.WeatherIcons/PackIconWeatherIconsImageExtension.cs index 62b6284..ae813af 100644 --- a/src/IconPacks.Avalonia.WeatherIcons/PackIconWeatherIconsImageExtension.cs +++ b/src/IconPacks.Avalonia.WeatherIcons/PackIconWeatherIconsImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.WeatherIcons @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconWeatherIconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Zondicons/Converter/PackIconZondiconsKindToImageConverter.cs b/src/IconPacks.Avalonia.Zondicons/Converter/PackIconZondiconsKindToImageConverter.cs index caaee8f..d579345 100644 --- a/src/IconPacks.Avalonia.Zondicons/Converter/PackIconZondiconsKindToImageConverter.cs +++ b/src/IconPacks.Avalonia.Zondicons/Converter/PackIconZondiconsKindToImageConverter.cs @@ -1,21 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.Zondicons.Converter { public class PackIconZondiconsKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconZondiconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia.Zondicons/PackIconZondicons.cs b/src/IconPacks.Avalonia.Zondicons/PackIconZondicons.cs index 65cdf4b..06fd00d 100644 --- a/src/IconPacks.Avalonia.Zondicons/PackIconZondicons.cs +++ b/src/IconPacks.Avalonia.Zondicons/PackIconZondicons.cs @@ -1,5 +1,4 @@ using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.Core.Attributes; @@ -45,9 +44,7 @@ protected override void UpdateData() { if (Kind != default) { - string data = null; - PackIconDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; + this.Data = PackIconGeometryCache.GetOrAdd(Kind); } else { diff --git a/src/IconPacks.Avalonia.Zondicons/PackIconZondiconsExtension.cs b/src/IconPacks.Avalonia.Zondicons/PackIconZondiconsExtension.cs index fc072b1..3b7d2b0 100644 --- a/src/IconPacks.Avalonia.Zondicons/PackIconZondiconsExtension.cs +++ b/src/IconPacks.Avalonia.Zondicons/PackIconZondiconsExtension.cs @@ -1,5 +1,5 @@ using System; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Zondicons diff --git a/src/IconPacks.Avalonia.Zondicons/PackIconZondiconsImageExtension.cs b/src/IconPacks.Avalonia.Zondicons/PackIconZondiconsImageExtension.cs index a2f715b..0a60abd 100644 --- a/src/IconPacks.Avalonia.Zondicons/PackIconZondiconsImageExtension.cs +++ b/src/IconPacks.Avalonia.Zondicons/PackIconZondiconsImageExtension.cs @@ -1,6 +1,6 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia.Zondicons @@ -22,17 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - if (iconKind is PackIconZondiconsKind kind) - { - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - } - - return data; - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia/Converter/PackIconKindToImageConverter.cs b/src/IconPacks.Avalonia/Converter/PackIconKindToImageConverter.cs index 73bbd5b..38f4ddc 100644 --- a/src/IconPacks.Avalonia/Converter/PackIconKindToImageConverter.cs +++ b/src/IconPacks.Avalonia/Converter/PackIconKindToImageConverter.cs @@ -1,188 +1,8 @@ -using Avalonia.Media; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.Core.Converter; -using IconPacks.Avalonia.BootstrapIcons; -using IconPacks.Avalonia.BoxIcons2; -using IconPacks.Avalonia.BoxIcons; -using IconPacks.Avalonia.CircumIcons; -using IconPacks.Avalonia.Codicons; -using IconPacks.Avalonia.Coolicons; -using IconPacks.Avalonia.Entypo; -using IconPacks.Avalonia.EvaIcons; -using IconPacks.Avalonia.FeatherIcons; -using IconPacks.Avalonia.FileIcons; -using IconPacks.Avalonia.Fontaudio; -using IconPacks.Avalonia.FontAwesome5; -using IconPacks.Avalonia.FontAwesome6; -using IconPacks.Avalonia.FontAwesome; -using IconPacks.Avalonia.Fontisto; -using IconPacks.Avalonia.ForkAwesome; -using IconPacks.Avalonia.GameIcons; -using IconPacks.Avalonia.Ionicons; -using IconPacks.Avalonia.JamIcons; -using IconPacks.Avalonia.KeyruneIcons; -using IconPacks.Avalonia.Lucide; -using IconPacks.Avalonia.Material; -using IconPacks.Avalonia.MaterialLight; -using IconPacks.Avalonia.MaterialDesign; -using IconPacks.Avalonia.MemoryIcons; -using IconPacks.Avalonia.Microns; -using IconPacks.Avalonia.MingCuteIcons; -using IconPacks.Avalonia.Modern; -using IconPacks.Avalonia.MynaUIIcons; -using IconPacks.Avalonia.Octicons; -using IconPacks.Avalonia.PhosphorIcons; -using IconPacks.Avalonia.PicolIcons; -using IconPacks.Avalonia.PixelartIcons; -using IconPacks.Avalonia.RadixIcons; -using IconPacks.Avalonia.RemixIcon; -using IconPacks.Avalonia.RPGAwesome; -using IconPacks.Avalonia.SimpleIcons; -using IconPacks.Avalonia.Typicons; -using IconPacks.Avalonia.Unicons; -using IconPacks.Avalonia.VaadinIcons; -using IconPacks.Avalonia.WeatherIcons; -using IconPacks.Avalonia.Zondicons; +using IconPacks.Avalonia.Core.Converter; namespace IconPacks.Avalonia.Converter { public class PackIconKindToImageConverter : PackIconKindToImageConverterBase { - /// - protected override string GetPathData(object iconKind) - { - string data = null; - switch (iconKind) - { - case PackIconBootstrapIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconBoxIcons2Kind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconBoxIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconCircumIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconCodiconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconCooliconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconEntypoKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconEvaIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconFeatherIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconFileIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconFontaudioKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconFontAwesome5Kind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconFontAwesome6Kind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconFontAwesomeKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconFontistoKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconForkAwesomeKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconGameIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconIoniconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconJamIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconKeyruneIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconLucideKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconMaterialKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconMaterialLightKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconMaterialDesignKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconMemoryIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconMicronsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconMingCuteIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconModernKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconMynaUIIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconOcticonsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconPhosphorIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconPicolIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconPixelartIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconRadixIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconRemixIconKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconRPGAwesomeKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconSimpleIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconTypiconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconUniconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconVaadinIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconWeatherIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconZondiconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - default: - return null; - } - } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia/PackIconControl.cs b/src/IconPacks.Avalonia/PackIconControl.cs index 23a2e0b..ac8ffbf 100644 --- a/src/IconPacks.Avalonia/PackIconControl.cs +++ b/src/IconPacks.Avalonia/PackIconControl.cs @@ -1,6 +1,5 @@ using System; using Avalonia; -using Avalonia.Media; using IconPacks.Avalonia.Core; namespace IconPacks.Avalonia @@ -40,16 +39,17 @@ protected override void SetKind(TKind iconKind) protected override void UpdateData() { - if (Kind != default(Enum)) + var kind = Kind; + + if (kind is null) { - string data = null; - PackIconControlDataFactory.DataIndex.Value?.TryGetValue(Kind, out data); - this.Data = data != null ? StreamGeometry.Parse(data) : null; - } - else - { - this.Data = null; + Data = null; + return; } + + var geometry = PackIconGeometryCache.GetOrAdd(Kind); + + Data = geometry; } } } \ No newline at end of file diff --git a/src/IconPacks.Avalonia/PackIconControlDataFactory.cs b/src/IconPacks.Avalonia/PackIconControlDataFactory.cs deleted file mode 100644 index 86ee5aa..0000000 --- a/src/IconPacks.Avalonia/PackIconControlDataFactory.cs +++ /dev/null @@ -1,112 +0,0 @@ -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Threading.Tasks; -using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.BootstrapIcons; -using IconPacks.Avalonia.BoxIcons2; -using IconPacks.Avalonia.BoxIcons; -using IconPacks.Avalonia.CircumIcons; -using IconPacks.Avalonia.Codicons; -using IconPacks.Avalonia.Coolicons; -using IconPacks.Avalonia.Entypo; -using IconPacks.Avalonia.EvaIcons; -using IconPacks.Avalonia.FeatherIcons; -using IconPacks.Avalonia.FileIcons; -using IconPacks.Avalonia.Fontaudio; -using IconPacks.Avalonia.FontAwesome5; -using IconPacks.Avalonia.FontAwesome6; -using IconPacks.Avalonia.FontAwesome; -using IconPacks.Avalonia.Fontisto; -using IconPacks.Avalonia.ForkAwesome; -using IconPacks.Avalonia.GameIcons; -using IconPacks.Avalonia.Ionicons; -using IconPacks.Avalonia.JamIcons; -using IconPacks.Avalonia.KeyruneIcons; -using IconPacks.Avalonia.Lucide; -using IconPacks.Avalonia.Material; -using IconPacks.Avalonia.MaterialLight; -using IconPacks.Avalonia.MaterialDesign; -using IconPacks.Avalonia.MemoryIcons; -using IconPacks.Avalonia.Microns; -using IconPacks.Avalonia.MingCuteIcons; -using IconPacks.Avalonia.Modern; -using IconPacks.Avalonia.MynaUIIcons; -using IconPacks.Avalonia.Octicons; -using IconPacks.Avalonia.PhosphorIcons; -using IconPacks.Avalonia.PicolIcons; -using IconPacks.Avalonia.PixelartIcons; -using IconPacks.Avalonia.RadixIcons; -using IconPacks.Avalonia.RemixIcon; -using IconPacks.Avalonia.RPGAwesome; -using IconPacks.Avalonia.SimpleIcons; -using IconPacks.Avalonia.Typicons; -using IconPacks.Avalonia.Unicons; -using IconPacks.Avalonia.VaadinIcons; -using IconPacks.Avalonia.WeatherIcons; -using IconPacks.Avalonia.Zondicons; - -namespace IconPacks.Avalonia -{ - /// ****************************************** - /// This code is auto generated. Do not amend. - /// ****************************************** - public static class PackIconControlDataFactory - { - public static Lazy> DataIndex { get; } - - static PackIconControlDataFactory() - { - DataIndex = new Lazy>(() => new ReadOnlyDictionary(GetAllIcons())); - } - - internal static IDictionary GetAllIcons() - { - var allIcons = new ConcurrentDictionary(); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - Parallel.ForEach(PackIconDataFactory.Create(), icon => { allIcons.TryAdd(icon.Key, icon.Value); }); - return allIcons; - } - } -} \ No newline at end of file diff --git a/src/IconPacks.Avalonia/PackIconExtension.cs b/src/IconPacks.Avalonia/PackIconExtension.cs index 330c56e..8c6f377 100644 --- a/src/IconPacks.Avalonia/PackIconExtension.cs +++ b/src/IconPacks.Avalonia/PackIconExtension.cs @@ -1,6 +1,6 @@ using System; using Avalonia.Data; -using Avalonia.Markup.Xaml; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; using IconPacks.Avalonia.BootstrapIcons; using IconPacks.Avalonia.BoxIcons2; diff --git a/src/IconPacks.Avalonia/PackIconImageExtension.cs b/src/IconPacks.Avalonia/PackIconImageExtension.cs index 787ee94..a461ccc 100644 --- a/src/IconPacks.Avalonia/PackIconImageExtension.cs +++ b/src/IconPacks.Avalonia/PackIconImageExtension.cs @@ -1,49 +1,7 @@ using System; -using Avalonia.Markup.Xaml; using Avalonia.Media; +using Avalonia.Metadata; using IconPacks.Avalonia.Core; -using IconPacks.Avalonia.BootstrapIcons; -using IconPacks.Avalonia.BoxIcons2; -using IconPacks.Avalonia.BoxIcons; -using IconPacks.Avalonia.CircumIcons; -using IconPacks.Avalonia.Codicons; -using IconPacks.Avalonia.Coolicons; -using IconPacks.Avalonia.Entypo; -using IconPacks.Avalonia.EvaIcons; -using IconPacks.Avalonia.FeatherIcons; -using IconPacks.Avalonia.FileIcons; -using IconPacks.Avalonia.Fontaudio; -using IconPacks.Avalonia.FontAwesome5; -using IconPacks.Avalonia.FontAwesome6; -using IconPacks.Avalonia.FontAwesome; -using IconPacks.Avalonia.Fontisto; -using IconPacks.Avalonia.ForkAwesome; -using IconPacks.Avalonia.GameIcons; -using IconPacks.Avalonia.Ionicons; -using IconPacks.Avalonia.JamIcons; -using IconPacks.Avalonia.KeyruneIcons; -using IconPacks.Avalonia.Lucide; -using IconPacks.Avalonia.Material; -using IconPacks.Avalonia.MaterialLight; -using IconPacks.Avalonia.MaterialDesign; -using IconPacks.Avalonia.MemoryIcons; -using IconPacks.Avalonia.Microns; -using IconPacks.Avalonia.MingCuteIcons; -using IconPacks.Avalonia.Modern; -using IconPacks.Avalonia.MynaUIIcons; -using IconPacks.Avalonia.Octicons; -using IconPacks.Avalonia.PhosphorIcons; -using IconPacks.Avalonia.PicolIcons; -using IconPacks.Avalonia.PixelartIcons; -using IconPacks.Avalonia.RadixIcons; -using IconPacks.Avalonia.RemixIcon; -using IconPacks.Avalonia.RPGAwesome; -using IconPacks.Avalonia.SimpleIcons; -using IconPacks.Avalonia.Typicons; -using IconPacks.Avalonia.Unicons; -using IconPacks.Avalonia.VaadinIcons; -using IconPacks.Avalonia.WeatherIcons; -using IconPacks.Avalonia.Zondicons; namespace IconPacks.Avalonia { @@ -64,142 +22,5 @@ public override object ProvideValue(IServiceProvider serviceProvider) { return CreateImageSource(this.Kind, this.Brush ?? Brushes.Black); } - - /// - protected override string GetPathData(object iconKind) - { - string data = null; - switch (iconKind) - { - case PackIconBootstrapIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconBoxIcons2Kind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconBoxIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconCircumIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconCodiconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconCooliconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconEntypoKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconEvaIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconFeatherIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconFileIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconFontaudioKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconFontAwesome5Kind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconFontAwesome6Kind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconFontAwesomeKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconFontistoKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconForkAwesomeKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconGameIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconIoniconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconJamIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconKeyruneIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconLucideKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconMaterialKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconMaterialLightKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconMaterialDesignKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconMemoryIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconMicronsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconMingCuteIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconModernKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconMynaUIIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconOcticonsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconPhosphorIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconPicolIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconPixelartIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconRadixIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconRemixIconKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconRPGAwesomeKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconSimpleIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconTypiconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconUniconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconVaadinIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconWeatherIconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - case PackIconZondiconsKind kind: - PackIconDataFactory.DataIndex.Value?.TryGetValue(kind, out data); - return data; - default: - return null; - } - } } } \ No newline at end of file