diff --git a/docs/Todos/TransitionsRefactoringPlan.md b/docs/Todos/TransitionsRefactoringPlan.md index 100c89576..59c484060 100644 --- a/docs/Todos/TransitionsRefactoringPlan.md +++ b/docs/Todos/TransitionsRefactoringPlan.md @@ -95,7 +95,7 @@ protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs chang | 3 | ~~Switch/AbstractToggleSwitch.cs~~ | ~~KnobMovingRect(Rect), OnContentOffset(Point), OffContentOffset(Point), GrooveBackground(SolidColorBrush), SwitchOpacity(Double)~~ | ✅ | | 4 | ~~Switch/SwitchKnob.cs~~ | ~~Background(SolidColorBrush), Width(Double), Height(Double)~~ | ✅ | | 5 | ~~ProgressBar/AbstractProgressBar.cs~~ | ~~Background(SolidColorBrush), IndicatorBarBrush(SolidColorBrush)~~ | ✅ | -| 6 | Spin/AbstractSpin.cs | DotBrush(SolidColorBrush) | | +| 6 | ~~Spin/AbstractSpin.cs~~ | ~~DotBrush(SolidColorBrush)~~ | ✅ | | 7 | CheckBox/Converters/CheckBoxIndicator.cs | Background(SolidColorBrush), BorderBrush(SolidColorBrush) | | | 8 | Segmented/AbstractSegmented.cs | Background(SolidColorBrush) | | | 9 | Segmented/AbstractSegmentedItem.cs | Background(SolidColorBrush), Foreground(SolidColorBrush) | | @@ -226,6 +226,7 @@ protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs chang - [ ] 第 1 批:AtomUI.Controls 基础控件(16 个) - [x] 4 | Switch/SwitchKnob.cs | Background(SolidColorBrush), Width(Double), Height(Double) | ✅ 已完成 - [x] 5 | ProgressBar/AbstractProgressBar.cs | Background(SolidColorBrush), IndicatorBarBrush(SolidColorBrush) | ✅ 已完成 + - [x] 6 | Spin/AbstractSpin.cs | DotBrush(SolidColorBrush) | ✅ 已完成 - [ ] 第 2 批:AtomUI.Desktop.Controls Part A(19 个) - [ ] 第 3 批:AtomUI.Desktop.Controls Part B(18 个) - [ ] 第 4 批:AtomUI.Desktop.Controls Part C(17 个) diff --git a/src/AtomUI.Controls/Spin/AbstractSpin.cs b/src/AtomUI.Controls/Spin/AbstractSpin.cs index e0789ff68..03978e29b 100644 --- a/src/AtomUI.Controls/Spin/AbstractSpin.cs +++ b/src/AtomUI.Controls/Spin/AbstractSpin.cs @@ -1,10 +1,8 @@ using Avalonia; -using Avalonia.Animation; using Avalonia.Animation.Easings; using Avalonia.Controls; using Avalonia.Controls.Primitives; using Avalonia.Controls.Templates; -using Avalonia.Interactivity; using Avalonia.Metadata; namespace AtomUI.Controls.Commons; @@ -149,13 +147,6 @@ public abstract class AbstractSpin : ContentControl, IMotionAwareControl { SetCurrentValue(IsCustomIndicatorProperty, CustomIndicator != null || CustomIndicatorTemplate != null); } - if (IsLoaded) - { - if (change.Property == IsMotionEnabledProperty) - { - ConfigureTransitions(true); - } - } } protected override void OnApplyTemplate(TemplateAppliedEventArgs e) @@ -163,33 +154,4 @@ public abstract class AbstractSpin : ContentControl, IMotionAwareControl base.OnApplyTemplate(e); SetCurrentValue(IsCustomIndicatorProperty, CustomIndicator != null || CustomIndicatorTemplate != null); } - - protected override void OnLoaded(RoutedEventArgs e) - { - base.OnLoaded(e); - ConfigureTransitions(false); - } - - protected override void OnUnloaded(RoutedEventArgs e) - { - base.OnUnloaded(e); - Transitions = null; - } - - private void ConfigureTransitions(bool force) - { - if (IsMotionEnabled) - { - if (force || Transitions == null) - { - Transitions = [ - TransitionUtils.CreateTransition(MaskOpacityProperty) - ]; - } - } - else - { - Transitions = null; - } - } } \ No newline at end of file diff --git a/src/AtomUI.Desktop.Controls/Spin/Themes/SpinTheme.axaml b/src/AtomUI.Desktop.Controls/Spin/Themes/SpinTheme.axaml index fa6c1d5ee..b7e95df8e 100644 --- a/src/AtomUI.Desktop.Controls/Spin/Themes/SpinTheme.axaml +++ b/src/AtomUI.Desktop.Controls/Spin/Themes/SpinTheme.axaml @@ -50,6 +50,14 @@ + +