diff --git a/src/AtomUI.Controls.Shared/Icon/IconPresenter.cs b/src/AtomUI.Controls.Shared/Icon/IconPresenter.cs
index 914c6f55f..01186e3d8 100644
--- a/src/AtomUI.Controls.Shared/Icon/IconPresenter.cs
+++ b/src/AtomUI.Controls.Shared/Icon/IconPresenter.cs
@@ -5,7 +5,6 @@ using Avalonia.Controls;
using Avalonia.Controls.Metadata;
using Avalonia.Controls.Primitives;
using Avalonia.Data;
-using Avalonia.Layout;
using Avalonia.Media;
using Avalonia.Metadata;
@@ -142,16 +141,6 @@ public class IconPresenter : TemplatedControl, IMotionAwareControl
UpdatePseudoClasses();
}
- protected override Size MeasureOverride(Size availableSize)
- {
- return LayoutHelper.MeasureChild(Icon, availableSize, Padding);
- }
-
- protected override Size ArrangeOverride(Size finalSize)
- {
- return LayoutHelper.ArrangeChild(Icon, finalSize, Padding);
- }
-
private void ChildChanged(AvaloniaPropertyChangedEventArgs e)
{
var oldChild = (Control?)e.OldValue;
diff --git a/src/AtomUI.Controls.Shared/Icon/Themes/IconTheme.axaml b/src/AtomUI.Controls.Shared/Icon/Themes/IconTheme.axaml
index 61e9cca07..bba84913a 100644
--- a/src/AtomUI.Controls.Shared/Icon/Themes/IconTheme.axaml
+++ b/src/AtomUI.Controls.Shared/Icon/Themes/IconTheme.axaml
@@ -13,6 +13,7 @@
+
diff --git a/src/AtomUI.Core/Controls/Icon/Icon.cs b/src/AtomUI.Core/Controls/Icon/Icon.cs
index 264c5ff14..c485d1d42 100644
--- a/src/AtomUI.Core/Controls/Icon/Icon.cs
+++ b/src/AtomUI.Core/Controls/Icon/Icon.cs
@@ -196,7 +196,6 @@ public class Icon : PathIcon, IMotionAwareControl
{
_sourceGeometriesData = new List();
_transforms = new List();
- this.ConfigureMotionBindingStyle();
Classes.CollectionChanged += HandlePseudoClassesChanged;
}
@@ -507,7 +506,7 @@ public class Icon : PathIcon, IMotionAwareControl
protected override Size MeasureOverride(Size availableSize)
{
- base.MeasureOverride(availableSize);
+ var size = base.MeasureOverride(availableSize);
if (_sourceGeometriesData.Count == 0)
{
return default;
diff --git a/src/AtomUI.Core/Controls/Icon/IconProvider.cs b/src/AtomUI.Core/Controls/Icon/IconProvider.cs
index 75573c4a7..8a5b9b0f7 100644
--- a/src/AtomUI.Core/Controls/Icon/IconProvider.cs
+++ b/src/AtomUI.Core/Controls/Icon/IconProvider.cs
@@ -1,5 +1,4 @@
using System.Diagnostics;
-using Avalonia.Data;
using Avalonia.Layout;
using Avalonia.Markup.Xaml;
using Avalonia.Media;
@@ -23,7 +22,7 @@ public abstract class IconProvider : MarkupExtension
public double Width { get; set; } = double.NaN;
public double Height { get; set; } = double.NaN;
- public IconAnimation Animation { get; set; } = IconAnimation.None;
+ public IconAnimation? Animation { get; set; }
public IconProvider()
{
@@ -38,15 +37,39 @@ public abstract class IconProvider : MarkupExtension
{
Debug.Assert(Kind != null);
var icon = GetIcon(Kind);
- icon.SetCurrentValue(Icon.LoadingAnimationProperty, Animation);
-
- icon.SetValue(Icon.NormalFilledBrushProperty, NormalFilledColor, NormalFilledColor != null ? BindingPriority.LocalValue : BindingPriority.Template);
- icon.SetValue(Icon.ActiveFilledBrushProperty, ActiveFilledColor, ActiveFilledColor != null ? BindingPriority.LocalValue : BindingPriority.Template);
- icon.SetValue(Icon.SelectedFilledBrushProperty, SelectedFilledColor, SelectedFilledColor != null ? BindingPriority.LocalValue : BindingPriority.Template);
- icon.SetValue(Icon.DisabledFilledBrushProperty, DisabledFilledColor, DisabledFilledColor != null ? BindingPriority.LocalValue : BindingPriority.Template);
- icon.SetValue(Icon.PrimaryFilledBrushProperty, PrimaryFilledColor, PrimaryFilledColor != null ? BindingPriority.LocalValue : BindingPriority.Template);
- icon.SetValue(Icon.SecondaryFilledBrushProperty, SecondaryFilledColor, SecondaryFilledColor != null ? BindingPriority.LocalValue : BindingPriority.Template);
+ if (Animation != null)
+ {
+ icon.SetCurrentValue(Icon.LoadingAnimationProperty, Animation);
+ }
+
+ if (NormalFilledColor != null)
+ {
+ icon.SetCurrentValue(Icon.NormalFilledBrushProperty, NormalFilledColor);
+ }
+ if (ActiveFilledColor != null)
+ {
+ icon.SetCurrentValue(Icon.ActiveFilledBrushProperty, ActiveFilledColor);
+ }
+ if (SelectedFilledColor != null)
+ {
+ icon.SetCurrentValue(Icon.SelectedFilledBrushProperty, SelectedFilledColor);
+ }
+
+ if (DisabledFilledColor != null)
+ {
+ icon.SetCurrentValue(Icon.DisabledFilledBrushProperty, DisabledFilledColor);
+ }
+
+ if (PrimaryFilledColor != null)
+ {
+ icon.SetCurrentValue(Icon.PrimaryFilledBrushProperty, PrimaryFilledColor);
+ }
+ if (SecondaryFilledColor != null)
+ {
+ icon.SetCurrentValue(Icon.SecondaryFilledBrushProperty, SecondaryFilledColor);
+ }
+
if (!double.IsNaN(Width))
{
icon.SetCurrentValue(Layoutable.WidthProperty, Width);
diff --git a/src/AtomUI.Desktop.Controls/ButtonSpinner/Themes/ButtonSpinnerHandle.axaml b/src/AtomUI.Desktop.Controls/ButtonSpinner/Themes/ButtonSpinnerHandle.axaml
index 3270488a4..3118ce4ec 100644
--- a/src/AtomUI.Desktop.Controls/ButtonSpinner/Themes/ButtonSpinnerHandle.axaml
+++ b/src/AtomUI.Desktop.Controls/ButtonSpinner/Themes/ButtonSpinnerHandle.axaml
@@ -40,8 +40,8 @@
Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorPrimaryActive}}" />
-
-
+
diff --git a/src/AtomUI.Desktop.Controls/Tag/Themes/TagTheme.axaml b/src/AtomUI.Desktop.Controls/Tag/Themes/TagTheme.axaml
index bc56f929d..7d027c8f8 100644
--- a/src/AtomUI.Desktop.Controls/Tag/Themes/TagTheme.axaml
+++ b/src/AtomUI.Desktop.Controls/Tag/Themes/TagTheme.axaml
@@ -17,7 +17,8 @@
+ NormalFilledBrush="{TemplateBinding Foreground}"
+ IsVisible="{TemplateBinding Icon, Converter={x:Static ObjectConverters.IsNotNull}}"/>