From 27bca294d086fe2beaba68119a615124adcc64b6 Mon Sep 17 00:00:00 2001 From: chinboy Date: Wed, 5 Mar 2025 17:18:55 +0800 Subject: [PATCH] Refactor ProgressBar --- .../ProgressBar/AbstractCircleProgress.cs | 6 +++--- .../AbstractCircleProgressTheme.cs | 2 -- .../ProgressBar/AbstractProgressBar.cs | 21 ++++++++----------- .../ProgressBar/AbstractProgressBarTheme.cs | 1 - 4 files changed, 12 insertions(+), 18 deletions(-) diff --git a/src/AtomUI.Controls/ProgressBar/AbstractCircleProgress.cs b/src/AtomUI.Controls/ProgressBar/AbstractCircleProgress.cs index 538fac358..2706a31ba 100644 --- a/src/AtomUI.Controls/ProgressBar/AbstractCircleProgress.cs +++ b/src/AtomUI.Controls/ProgressBar/AbstractCircleProgress.cs @@ -233,10 +233,10 @@ public abstract class AbstractCircleProgress : AbstractProgressBar protected override void NotifyPropertyChanged(AvaloniaPropertyChangedEventArgs e) { base.NotifyPropertyChanged(e); - - if (e.Property == WidthProperty || e.Property == HeightProperty) + + if (this.IsAttachedToVisualTree()) { - if (this.IsAttachedToVisualTree()) + if (e.Property == WidthProperty || e.Property == HeightProperty) { CalculateStrokeThickness(); SetupExtraInfoFontSize(); diff --git a/src/AtomUI.Controls/ProgressBar/AbstractCircleProgressTheme.cs b/src/AtomUI.Controls/ProgressBar/AbstractCircleProgressTheme.cs index 3f4faeb9b..8a1346c5e 100644 --- a/src/AtomUI.Controls/ProgressBar/AbstractCircleProgressTheme.cs +++ b/src/AtomUI.Controls/ProgressBar/AbstractCircleProgressTheme.cs @@ -1,7 +1,5 @@ using AtomUI.IconPkg; using AtomUI.IconPkg.AntDesign; -using AtomUI.Theme; -using AtomUI.Theme.Data; using AtomUI.Theme.Styling; using Avalonia; using Avalonia.Controls; diff --git a/src/AtomUI.Controls/ProgressBar/AbstractProgressBar.cs b/src/AtomUI.Controls/ProgressBar/AbstractProgressBar.cs index 8307b48c7..5782cc335 100644 --- a/src/AtomUI.Controls/ProgressBar/AbstractProgressBar.cs +++ b/src/AtomUI.Controls/ProgressBar/AbstractProgressBar.cs @@ -1,5 +1,4 @@ using System.Reactive.Disposables; -using AtomUI.Controls.Utils; using AtomUI.IconPkg; using AtomUI.Media; using AtomUI.Theme; @@ -438,6 +437,15 @@ public abstract class AbstractProgressBar : RangeBase, { EffectiveSizeType = e.GetNewValue(); } + else if (e.Property == ValueProperty) + { + IsCompleted = MathUtils.AreClose(Value, Maximum); + UpdatePseudoClasses(); + } + else if (e.Property == IsCompletedProperty) + { + InvalidateMeasure(); + } if (this.IsAttachedToVisualTree()) { @@ -450,17 +458,6 @@ public abstract class AbstractProgressBar : RangeBase, NotifyEffectSizeTypeChanged(); } } - - if (e.Property == ValueProperty) - { - IsCompleted = MathUtils.AreClose(Value, Maximum); - UpdatePseudoClasses(); - } - else if (e.Property == IsCompletedProperty) - { - InvalidateMeasure(); - } - NotifyPropertyChanged(e); } diff --git a/src/AtomUI.Controls/ProgressBar/AbstractProgressBarTheme.cs b/src/AtomUI.Controls/ProgressBar/AbstractProgressBarTheme.cs index d9baad856..784920c82 100644 --- a/src/AtomUI.Controls/ProgressBar/AbstractProgressBarTheme.cs +++ b/src/AtomUI.Controls/ProgressBar/AbstractProgressBarTheme.cs @@ -7,7 +7,6 @@ using Avalonia.Controls.Primitives; using Avalonia.Controls.Templates; using Avalonia.Input; using Avalonia.Layout; -using Avalonia.Media; using Avalonia.Styling; namespace AtomUI.Controls;