diff --git a/src/AtomUI.Controls/Badge/CountBadgeAdorner.cs b/src/AtomUI.Controls/Badge/CountBadgeAdorner.cs index bff4162dd..d943a237c 100644 --- a/src/AtomUI.Controls/Badge/CountBadgeAdorner.cs +++ b/src/AtomUI.Controls/Badge/CountBadgeAdorner.cs @@ -98,10 +98,8 @@ internal class CountBadgeAdorner : TemplatedControl AvaloniaProperty.Register( nameof(BadgeShadowSize)); - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); private bool _isAdornerMode; @@ -147,12 +145,10 @@ internal class CountBadgeAdorner : TemplatedControl set => SetValue(BadgeShadowSizeProperty, value); } - private bool _isMotionEnabled; - internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } #endregion diff --git a/src/AtomUI.Controls/Badge/DotBadgeAdorner.cs b/src/AtomUI.Controls/Badge/DotBadgeAdorner.cs index b401df466..62fc574a5 100644 --- a/src/AtomUI.Controls/Badge/DotBadgeAdorner.cs +++ b/src/AtomUI.Controls/Badge/DotBadgeAdorner.cs @@ -82,10 +82,8 @@ internal class DotBadgeAdorner : TemplatedControl AvaloniaProperty.Register( nameof(MotionDuration)); - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); internal TimeSpan MotionDuration { @@ -93,12 +91,10 @@ internal class DotBadgeAdorner : TemplatedControl set => SetValue(MotionDurationProperty, value); } - private bool _isMotionEnabled; - internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } #endregion diff --git a/src/AtomUI.Controls/Calendar/BaseCalendarButton.cs b/src/AtomUI.Controls/Calendar/BaseCalendarButton.cs index f89cb7db5..ce3fb4e2e 100644 --- a/src/AtomUI.Controls/Calendar/BaseCalendarButton.cs +++ b/src/AtomUI.Controls/Calendar/BaseCalendarButton.cs @@ -19,21 +19,17 @@ namespace AtomUI.Controls; [PseudoClasses(StdPseudoClass.Selected, StdPseudoClass.InActive, BtnFocusedPC)] internal class BaseCalendarButton : AvaloniaButton { - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); - - private bool _isMotionEnabled; + private const string BtnFocusedPC = ":btnfocused"; + + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } - private const string BtnFocusedPC = ":btnfocused"; - /// /// A value indicating whether the button is focused. /// diff --git a/src/AtomUI.Controls/Calendar/BaseCalendarDayButton.cs b/src/AtomUI.Controls/Calendar/BaseCalendarDayButton.cs index 3d1497869..9bacbc87a 100644 --- a/src/AtomUI.Controls/Calendar/BaseCalendarDayButton.cs +++ b/src/AtomUI.Controls/Calendar/BaseCalendarDayButton.cs @@ -32,19 +32,15 @@ internal class BaseCalendarDayButton : AvaloniaButton, internal const string BlackoutPC = ":blackout"; internal const string DayfocusedPC = ":dayfocused"; - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); - - private bool _isMotionEnabled; + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } - + CompositeDisposable? ITokenResourceConsumer.TokenBindingsDisposable => _tokenBindingsDisposable; private CompositeDisposable? _tokenBindingsDisposable; diff --git a/src/AtomUI.Controls/Calendar/HeadTextButton.cs b/src/AtomUI.Controls/Calendar/HeadTextButton.cs index 31a4cd0e2..05e960955 100644 --- a/src/AtomUI.Controls/Calendar/HeadTextButton.cs +++ b/src/AtomUI.Controls/Calendar/HeadTextButton.cs @@ -12,17 +12,14 @@ using AvaloniaButton = Avalonia.Controls.Button; internal class HeadTextButton : AvaloniaButton { - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); - private bool _isMotionEnabled; + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } protected override void OnAttachedToLogicalTree(LogicalTreeAttachmentEventArgs e) diff --git a/src/AtomUI.Controls/CheckBox/CheckBoxIndicator.cs b/src/AtomUI.Controls/CheckBox/CheckBoxIndicator.cs index f5ab87176..7479ac011 100644 --- a/src/AtomUI.Controls/CheckBox/CheckBoxIndicator.cs +++ b/src/AtomUI.Controls/CheckBox/CheckBoxIndicator.cs @@ -116,22 +116,18 @@ internal class CheckBoxIndicator : Control, #region 内部属性定义 - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); internal static readonly DirectProperty IsWaveAnimationEnabledProperty = AvaloniaProperty.RegisterDirect(nameof(IsWaveAnimationEnabled), o => o.IsWaveAnimationEnabled, (o, v) => o.IsWaveAnimationEnabled = v); - private bool _isMotionEnabled; - internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } private bool _isWaveAnimationEnabled = true; diff --git a/src/AtomUI.Controls/Collapse/CollapseItem.cs b/src/AtomUI.Controls/Collapse/CollapseItem.cs index 2a1494084..9aecf47af 100644 --- a/src/AtomUI.Controls/Collapse/CollapseItem.cs +++ b/src/AtomUI.Controls/Collapse/CollapseItem.cs @@ -109,10 +109,8 @@ public class CollapseItem : HeaderedContentControl, o => o.MotionDuration, (o, v) => o.MotionDuration = v); - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); private SizeType _sizeType; @@ -178,12 +176,10 @@ public class CollapseItem : HeaderedContentControl, set => SetAndRaise(MotionDurationProperty, ref _motionDuration, value); } - private bool _isMotionEnabled; - internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } #endregion @@ -301,7 +297,7 @@ public class CollapseItem : HeaderedContentControl, return; } - if (!_isMotionEnabled || _tempAnimationDisabled) + if (!IsMotionEnabled || _tempAnimationDisabled) { _motionActor.IsVisible = true; return; @@ -320,7 +316,7 @@ public class CollapseItem : HeaderedContentControl, return; } - if (!_isMotionEnabled || _tempAnimationDisabled) + if (!IsMotionEnabled || _tempAnimationDisabled) { _motionActor.IsVisible = false; return; diff --git a/src/AtomUI.Controls/ComboBox/ComboBoxItem.cs b/src/AtomUI.Controls/ComboBox/ComboBoxItem.cs index 41b678759..4ff38ab38 100644 --- a/src/AtomUI.Controls/ComboBox/ComboBoxItem.cs +++ b/src/AtomUI.Controls/ComboBox/ComboBoxItem.cs @@ -21,17 +21,13 @@ public class ComboBoxItem : AvaloniaComboBoxItem set => SetAndRaise(SizeTypeProperty, ref _sizeType, value); } - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); - - private bool _isMotionEnabled; + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } #endregion } \ No newline at end of file diff --git a/src/AtomUI.Controls/DatePicker/CalendarView/Calendar.cs b/src/AtomUI.Controls/DatePicker/CalendarView/Calendar.cs index 5fa158d34..7d3ee78a5 100644 --- a/src/AtomUI.Controls/DatePicker/CalendarView/Calendar.cs +++ b/src/AtomUI.Controls/DatePicker/CalendarView/Calendar.cs @@ -271,17 +271,13 @@ internal class Calendar : TemplatedControl #region 内部属性定义 - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); - private bool _isMotionEnabled; - internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } internal CalendarDayButton? FocusButton { get; set; } diff --git a/src/AtomUI.Controls/DatePicker/CalendarView/CalendarButton.cs b/src/AtomUI.Controls/DatePicker/CalendarView/CalendarButton.cs index 6e90232a8..bbfb462bb 100644 --- a/src/AtomUI.Controls/DatePicker/CalendarView/CalendarButton.cs +++ b/src/AtomUI.Controls/DatePicker/CalendarView/CalendarButton.cs @@ -22,17 +22,13 @@ internal sealed class CalendarButton : AvaloniaButton { internal const string BtnFocusedPC = ":btnfocused"; - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); - - private bool _isMotionEnabled; + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } /// diff --git a/src/AtomUI.Controls/DatePicker/CalendarView/CalendarDayButton.cs b/src/AtomUI.Controls/DatePicker/CalendarView/CalendarDayButton.cs index a218d6a41..d1f85a244 100644 --- a/src/AtomUI.Controls/DatePicker/CalendarView/CalendarDayButton.cs +++ b/src/AtomUI.Controls/DatePicker/CalendarView/CalendarDayButton.cs @@ -32,17 +32,13 @@ internal sealed class CalendarDayButton : AvaloniaButton, internal const string BlackoutPC = ":blackout"; internal const string DayfocusedPC = ":dayfocused"; - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); - - private bool _isMotionEnabled; + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } CompositeDisposable? ITokenResourceConsumer.TokenBindingsDisposable => _tokenBindingsDisposable; diff --git a/src/AtomUI.Controls/DatePicker/CalendarView/CalendarItem.cs b/src/AtomUI.Controls/DatePicker/CalendarView/CalendarItem.cs index 0acbc5e05..811d0f471 100644 --- a/src/AtomUI.Controls/DatePicker/CalendarView/CalendarItem.cs +++ b/src/AtomUI.Controls/DatePicker/CalendarView/CalendarItem.cs @@ -69,10 +69,8 @@ internal class CalendarItem : TemplatedControl, o => o.IsMonthViewMode, (o, v) => o.IsMonthViewMode = v); - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); private bool _isMonthViewMode = true; @@ -85,12 +83,10 @@ internal class CalendarItem : TemplatedControl, set => SetAndRaise(IsMonthViewModeProperty, ref _isMonthViewMode, value); } - private bool _isMotionEnabled; - internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } /// diff --git a/src/AtomUI.Controls/DatePicker/DatePickerPresenter.cs b/src/AtomUI.Controls/DatePicker/DatePickerPresenter.cs index 1bbf73b1b..1a7348e39 100644 --- a/src/AtomUI.Controls/DatePicker/DatePickerPresenter.cs +++ b/src/AtomUI.Controls/DatePicker/DatePickerPresenter.cs @@ -86,17 +86,13 @@ internal class DatePickerPresenter : PickerPresenterBase, public static readonly StyledProperty TempSelectedTimeProperty = AvaloniaProperty.Register(nameof(TempSelectedTime)); - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); - - private bool _isMotionEnabled; + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } private bool _buttonsPanelVisible = true; diff --git a/src/AtomUI.Controls/Drawer/DrawerContainer.cs b/src/AtomUI.Controls/Drawer/DrawerContainer.cs index 3293d6027..47fd1fc74 100644 --- a/src/AtomUI.Controls/Drawer/DrawerContainer.cs +++ b/src/AtomUI.Controls/Drawer/DrawerContainer.cs @@ -1,8 +1,6 @@ using System.Diagnostics; -using System.Reactive.Disposables; using AtomUI.Controls.Primitives; using AtomUI.MotionScene; -using AtomUI.Theme; using Avalonia; using Avalonia.Animation; using Avalonia.Animation.Easings; @@ -12,7 +10,6 @@ using Avalonia.Controls.Templates; using Avalonia.Data; using Avalonia.Input; using Avalonia.Layout; -using Avalonia.LogicalTree; using Avalonia.Media; using Avalonia.Media.Transformation; using Avalonia.Threading; @@ -68,10 +65,8 @@ internal class DrawerContainer : ContentControl o => o.DialogSize, (o, v) => o.DialogSize = v); - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); internal static readonly DirectProperty CloseWhenClickOnMaskProperty = AvaloniaProperty.RegisterDirect(nameof(CloseWhenClickOnMask), @@ -165,14 +160,12 @@ internal class DrawerContainer : ContentControl set => SetAndRaise(DialogSizeProperty, ref _dialogSize, value); } - private bool _isMotionEnabled; - internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } - + private bool _closeWhenClickOnMask; internal bool CloseWhenClickOnMask diff --git a/src/AtomUI.Controls/Drawer/DrawerInfoContainer.cs b/src/AtomUI.Controls/Drawer/DrawerInfoContainer.cs index a35ac2642..03bf1128e 100644 --- a/src/AtomUI.Controls/Drawer/DrawerInfoContainer.cs +++ b/src/AtomUI.Controls/Drawer/DrawerInfoContainer.cs @@ -64,10 +64,8 @@ internal class DrawerInfoContainer : HeaderedContentControl o => o.HasExtra, (o, v) => o.HasExtra = v); - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); private DrawerPlacement _placement = DrawerPlacement.Right; @@ -149,12 +147,10 @@ internal class DrawerInfoContainer : HeaderedContentControl set => SetAndRaise(HasExtraProperty, ref _hasExtra, value); } - private bool _isMotionEnabled; - internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } #endregion diff --git a/src/AtomUI.Controls/Flyouts/PopupFlyoutBase.cs b/src/AtomUI.Controls/Flyouts/PopupFlyoutBase.cs index 057b18eae..1ca78514a 100644 --- a/src/AtomUI.Controls/Flyouts/PopupFlyoutBase.cs +++ b/src/AtomUI.Controls/Flyouts/PopupFlyoutBase.cs @@ -151,10 +151,8 @@ public abstract class PopupFlyoutBase : FlyoutBase, internal static readonly StyledProperty IsDetectMouseClickEnabledProperty = AvaloniaProperty.Register(nameof(IsDetectMouseClickEnabled), true); - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); internal bool IsDetectMouseClickEnabled { @@ -162,12 +160,10 @@ public abstract class PopupFlyoutBase : FlyoutBase, set => SetValue(IsDetectMouseClickEnabledProperty, value); } - private bool _isMotionEnabled; - internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } #endregion diff --git a/src/AtomUI.Controls/ListBox/ListBoxItem.cs b/src/AtomUI.Controls/ListBox/ListBoxItem.cs index 478f7f376..00006d8ac 100644 --- a/src/AtomUI.Controls/ListBox/ListBoxItem.cs +++ b/src/AtomUI.Controls/ListBox/ListBoxItem.cs @@ -17,10 +17,8 @@ public class ListBoxItem : AvaloniaListBoxItem o => o.SizeType, (o, v) => o.SizeType = v); - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); internal static readonly DirectProperty DisabledItemHoverEffectProperty = AvaloniaProperty.RegisterDirect(nameof(DisabledItemHoverEffect), @@ -35,12 +33,10 @@ public class ListBoxItem : AvaloniaListBoxItem set => SetAndRaise(SizeTypeProperty, ref _sizeType, value); } - private bool _isMotionEnabled; - internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } private bool _disabledItemHoverEffect; diff --git a/src/AtomUI.Controls/Menu/MenuItem.cs b/src/AtomUI.Controls/Menu/MenuItem.cs index f11df6c27..4333d5d92 100644 --- a/src/AtomUI.Controls/Menu/MenuItem.cs +++ b/src/AtomUI.Controls/Menu/MenuItem.cs @@ -43,17 +43,13 @@ public class MenuItem : AvaloniaMenuItem, #region 内部属性定义 - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); - - private bool _isMotionEnabled; + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } CompositeDisposable? ITokenResourceConsumer.TokenBindingsDisposable => _tokenBindingsDisposable; diff --git a/src/AtomUI.Controls/Menu/MenuScrollViewer.cs b/src/AtomUI.Controls/Menu/MenuScrollViewer.cs index e508f3ca8..400e74f99 100644 --- a/src/AtomUI.Controls/Menu/MenuScrollViewer.cs +++ b/src/AtomUI.Controls/Menu/MenuScrollViewer.cs @@ -23,18 +23,14 @@ public class MenuScrollViewer : AvaloniaScrollViewer, private IconButton? _scrollDownButton; #region 内部属性定义 - - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); - - private bool _isMotionEnabled; + + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } CompositeDisposable? ITokenResourceConsumer.TokenBindingsDisposable => _tokenBindingsDisposable; diff --git a/src/AtomUI.Controls/NavMenu/NavMenuItem.cs b/src/AtomUI.Controls/NavMenu/NavMenuItem.cs index af81c2f27..b358e2d7f 100644 --- a/src/AtomUI.Controls/NavMenu/NavMenuItem.cs +++ b/src/AtomUI.Controls/NavMenu/NavMenuItem.cs @@ -1,12 +1,10 @@ -using System.Reactive.Disposables; -using System.Windows.Input; +using System.Windows.Input; using AtomUI.Controls.Utils; using AtomUI.Data; using AtomUI.IconPkg; using AtomUI.Input; using AtomUI.Media; using AtomUI.MotionScene; -using AtomUI.Theme; using Avalonia; using Avalonia.Animation; using Avalonia.Animation.Easings; @@ -288,10 +286,8 @@ public class NavMenuItem : HeaderedSelectingItemsControl, o => o.IsDarkStyle, (o, v) => o.IsDarkStyle = v); - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); internal double ActiveBarWidth { @@ -361,12 +357,10 @@ public class NavMenuItem : HeaderedSelectingItemsControl, set => SetAndRaise(IsDarkStyleProperty, ref _isDarkStyle, value); } - private bool _isMotionEnabled; - internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } #endregion diff --git a/src/AtomUI.Controls/OptionButtonBox/OptionButton.cs b/src/AtomUI.Controls/OptionButtonBox/OptionButton.cs index 4afa704c9..c05688870 100644 --- a/src/AtomUI.Controls/OptionButtonBox/OptionButton.cs +++ b/src/AtomUI.Controls/OptionButtonBox/OptionButton.cs @@ -83,22 +83,18 @@ public class OptionButton : AvaloniaRadioButton, (o, v) => o.GroupPositionTrait = v, OptionButtonPositionTrait.OnlyOne); - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); internal static readonly DirectProperty IsWaveAnimationEnabledProperty = AvaloniaProperty.RegisterDirect(nameof(IsWaveAnimationEnabled), o => o.IsWaveAnimationEnabled, (o, v) => o.IsWaveAnimationEnabled = v); - private bool _isMotionEnabled; - internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } private bool _isWaveAnimationEnabled = true; diff --git a/src/AtomUI.Controls/RadioButton/RadioIndicator.cs b/src/AtomUI.Controls/RadioButton/RadioIndicator.cs index 5bf2e2d3b..32ed2a0fb 100644 --- a/src/AtomUI.Controls/RadioButton/RadioIndicator.cs +++ b/src/AtomUI.Controls/RadioButton/RadioIndicator.cs @@ -117,22 +117,18 @@ internal class RadioIndicator : Control, #region 内部属性定义 - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); internal static readonly DirectProperty IsWaveAnimationEnabledProperty = AvaloniaProperty.RegisterDirect(nameof(IsWaveAnimationEnabled), o => o.IsWaveAnimationEnabled, (o, v) => o.IsWaveAnimationEnabled = v); - private bool _isMotionEnabled; - internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } private bool _isWaveAnimationEnabled = true; diff --git a/src/AtomUI.Controls/Segmented/SegmentedItem.cs b/src/AtomUI.Controls/Segmented/SegmentedItem.cs index 779409787..5c45bb926 100644 --- a/src/AtomUI.Controls/Segmented/SegmentedItem.cs +++ b/src/AtomUI.Controls/Segmented/SegmentedItem.cs @@ -4,8 +4,6 @@ using AtomUI.Controls.Utils; using AtomUI.IconPkg; using AtomUI.Media; using AtomUI.Theme; -using AtomUI.Theme.Data; -using AtomUI.Theme.Styling; using Avalonia; using Avalonia.Animation; using Avalonia.Controls; @@ -49,11 +47,9 @@ public class SegmentedItem : ContentControl, internal static readonly StyledProperty SizeTypeProperty = SizeTypeAwareControlProperty.SizeTypeProperty.AddOwner(); - - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); + + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); internal SizeType SizeType { @@ -61,12 +57,10 @@ public class SegmentedItem : ContentControl, set => SetValue(SizeTypeProperty, value); } - private bool _isMotionEnabled; - internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } CompositeDisposable? ITokenResourceConsumer.TokenBindingsDisposable => _tokenBindingsDisposable; diff --git a/src/AtomUI.Controls/Slider/SliderThumb.cs b/src/AtomUI.Controls/Slider/SliderThumb.cs index f2ab533e9..7390170a7 100644 --- a/src/AtomUI.Controls/Slider/SliderThumb.cs +++ b/src/AtomUI.Controls/Slider/SliderThumb.cs @@ -8,7 +8,6 @@ using Avalonia.Controls.Metadata; using Avalonia.Controls.Primitives; using Avalonia.Input; using Avalonia.Interactivity; -using Avalonia.LogicalTree; using Avalonia.Media; using Avalonia.VisualTree; @@ -44,17 +43,13 @@ public class SliderThumb : TemplatedControl #region 内部属性定义 - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); - private bool _isMotionEnabled; - internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } #endregion diff --git a/src/AtomUI.Controls/Slider/SliderTrack.cs b/src/AtomUI.Controls/Slider/SliderTrack.cs index f5d6cbc06..b57d635ec 100644 --- a/src/AtomUI.Controls/Slider/SliderTrack.cs +++ b/src/AtomUI.Controls/Slider/SliderTrack.cs @@ -231,10 +231,8 @@ public class SliderTrack : Control, internal static readonly RoutedEvent TrailReleasedEvent = RoutedEvent.Register(nameof(TrailReleased), RoutingStrategies.Bubble); - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); internal double SliderTrackSize { @@ -284,12 +282,10 @@ public class SliderTrack : Control, set => SetValue(MarkBorderThicknessProperty, value); } - private bool _isMotionEnabled; - internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } CompositeDisposable? ITokenResourceConsumer.TokenBindingsDisposable => _tokenBindingsDisposable; diff --git a/src/AtomUI.Controls/Switch/SwitchKnob.cs b/src/AtomUI.Controls/Switch/SwitchKnob.cs index 5ce8bf45f..bdd0bb044 100644 --- a/src/AtomUI.Controls/Switch/SwitchKnob.cs +++ b/src/AtomUI.Controls/Switch/SwitchKnob.cs @@ -64,10 +64,8 @@ internal class SwitchKnob : Control, internal static readonly StyledProperty KnobRenderWidthProperty = AvaloniaProperty.Register(nameof(KnobRenderWidth)); - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); internal static readonly StyledProperty LoadingAnimationDurationProperty = AvaloniaProperty.Register(nameof(LoadingAnimationDuration)); @@ -101,12 +99,10 @@ internal class SwitchKnob : Control, set => SetValue(KnobRenderWidthProperty, value); } - private bool _isMotionEnabled; - internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } internal TimeSpan LoadingAnimationDuration diff --git a/src/AtomUI.Controls/TabControl/TabItem.cs b/src/AtomUI.Controls/TabControl/TabItem.cs index 782951ad7..613a16710 100644 --- a/src/AtomUI.Controls/TabControl/TabItem.cs +++ b/src/AtomUI.Controls/TabControl/TabItem.cs @@ -63,10 +63,8 @@ public class TabItem : AvaloniaTabItem, internal static readonly StyledProperty ShapeProperty = AvaloniaProperty.Register(nameof(Shape)); - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); public SizeType SizeType { @@ -79,13 +77,11 @@ public class TabItem : AvaloniaTabItem, get => GetValue(ShapeProperty); set => SetValue(ShapeProperty, value); } - - private bool _isMotionEnabled; - + internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } CompositeDisposable? ITokenResourceConsumer.TokenBindingsDisposable => _tokenBindingsDisposable; diff --git a/src/AtomUI.Controls/TabControl/TabStrip/TabStripItem.cs b/src/AtomUI.Controls/TabControl/TabStrip/TabStripItem.cs index 4c34fd7fb..20d23652f 100644 --- a/src/AtomUI.Controls/TabControl/TabStrip/TabStripItem.cs +++ b/src/AtomUI.Controls/TabControl/TabStrip/TabStripItem.cs @@ -86,10 +86,8 @@ public class TabStripItem : AvaloniaTabStripItem, internal static readonly StyledProperty ShapeProperty = AvaloniaProperty.Register(nameof(Shape)); - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); public TabSharp Shape { @@ -97,12 +95,10 @@ public class TabStripItem : AvaloniaTabStripItem, set => SetValue(ShapeProperty, value); } - private bool _isMotionEnabled; - internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } CompositeDisposable? ITokenResourceConsumer.TokenBindingsDisposable => _tokenBindingsDisposable; diff --git a/src/AtomUI.Controls/TimePicker/DateTimePickerPanel.cs b/src/AtomUI.Controls/TimePicker/DateTimePickerPanel.cs index 6902d4c80..59e083ea3 100644 --- a/src/AtomUI.Controls/TimePicker/DateTimePickerPanel.cs +++ b/src/AtomUI.Controls/TimePicker/DateTimePickerPanel.cs @@ -1,7 +1,6 @@ using System.Diagnostics; using System.Reactive.Disposables; using AtomUI.Controls.TimePickerLang; -using AtomUI.Controls.Utils; using AtomUI.Theme; using AtomUI.Theme.Data; using AtomUI.Theme.Styling; @@ -68,62 +67,37 @@ internal class DateTimePickerPanel : Panel, ITokenResourceConsumer { #region 公共属性定义 - - /// - /// Defines the property - /// + public static readonly StyledProperty ItemHeightProperty = AvaloniaProperty.Register(nameof(ItemHeight), 40.0); - - /// - /// Defines the property - /// + public static readonly StyledProperty PanelTypeProperty = AvaloniaProperty.Register(nameof(PanelType)); - - /// - /// Defines the property - /// + public static readonly StyledProperty ItemFormatProperty = AvaloniaProperty.Register(nameof(ItemFormat), "yyyy"); - /// - /// Defines the property - /// public static readonly StyledProperty ShouldLoopProperty = AvaloniaProperty.Register(nameof(ShouldLoop)); - - /// - /// Gets or sets the height of each item - /// + public double ItemHeight { get => GetValue(ItemHeightProperty); set => SetValue(ItemHeightProperty, value); } - - /// - /// Gets or sets what this panel displays in date or time units - /// + public DateTimePickerPanelType PanelType { get => GetValue(PanelTypeProperty); set => SetValue(PanelTypeProperty, value); } - - /// - /// Gets or sets the string format for the items, using standard - /// .net DateTime or TimeSpan formatting. Format must match panel type - /// + public string ItemFormat { get => GetValue(ItemFormatProperty); set => SetValue(ItemFormatProperty, value); } - - /// - /// Gets or sets whether the panel should loop - /// + public bool ShouldLoop { get => GetValue(ShouldLoopProperty); @@ -134,17 +108,13 @@ internal class DateTimePickerPanel : Panel, #region 内部属性定义 - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); - - private bool _isMotionEnabled; + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } CompositeDisposable? ITokenResourceConsumer.TokenBindingsDisposable => _tokenBindingsDisposable; diff --git a/src/AtomUI.Controls/TimePicker/TimePickerPresenter.cs b/src/AtomUI.Controls/TimePicker/TimePickerPresenter.cs index 28f88c937..c2bbd26aa 100644 --- a/src/AtomUI.Controls/TimePicker/TimePickerPresenter.cs +++ b/src/AtomUI.Controls/TimePicker/TimePickerPresenter.cs @@ -99,17 +99,13 @@ internal class TimePickerPresenter : PickerPresenterBase, set => SetValue(TempSelectedTimeProperty, value); } - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); - private bool _isMotionEnabled; - internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } CompositeDisposable? ITokenResourceConsumer.TokenBindingsDisposable => _tokenBindingsDisposable; diff --git a/src/AtomUI.Controls/TimePicker/TimeView/TimeView.cs b/src/AtomUI.Controls/TimePicker/TimeView/TimeView.cs index 48f3881a6..fa4ca7b5c 100644 --- a/src/AtomUI.Controls/TimePicker/TimeView/TimeView.cs +++ b/src/AtomUI.Controls/TimePicker/TimeView/TimeView.cs @@ -115,10 +115,8 @@ internal class TimeView : TemplatedControl, internal static readonly StyledProperty IsPointerInSelectorProperty = AvaloniaProperty.Register(nameof(IsPointerInSelector), false); - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); private double _spacerWidth; @@ -142,12 +140,10 @@ internal class TimeView : TemplatedControl, set => SetAndRaise(ItemHeightProperty, ref _itemHeight, value); } - private bool _isMotionEnabled; - internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } CompositeDisposable? ITokenResourceConsumer.TokenBindingsDisposable => _tokenBindingsDisposable; diff --git a/src/AtomUI.Controls/TreeView/NodeSwitcherButton.cs b/src/AtomUI.Controls/TreeView/NodeSwitcherButton.cs index 9b358643a..4950340a3 100644 --- a/src/AtomUI.Controls/TreeView/NodeSwitcherButton.cs +++ b/src/AtomUI.Controls/TreeView/NodeSwitcherButton.cs @@ -92,10 +92,8 @@ internal class NodeSwitcherButton : ToggleButton o => o.IconMode, (o, v) => o.IconMode = v); - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); internal bool IsLeafIconVisible { @@ -111,12 +109,10 @@ internal class NodeSwitcherButton : ToggleButton set => SetAndRaise(IconModeProperty, ref _iconMode, value); } - private bool _isMotionEnabled; - internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } internal bool IsNodeAnimating { get; set; } = false; diff --git a/src/AtomUI.Controls/TreeView/TreeViewItem.cs b/src/AtomUI.Controls/TreeView/TreeViewItem.cs index 99e04e103..7ad939290 100644 --- a/src/AtomUI.Controls/TreeView/TreeViewItem.cs +++ b/src/AtomUI.Controls/TreeView/TreeViewItem.cs @@ -195,10 +195,8 @@ public class TreeViewItem : AvaloniaTreeItem, internal static readonly StyledProperty EffectiveNodeCornerRadiusProperty = AvaloniaProperty.Register(nameof(EffectiveNodeCornerRadius)); - internal static readonly DirectProperty IsMotionEnabledProperty - = AvaloniaProperty.RegisterDirect(nameof(IsMotionEnabled), - o => o.IsMotionEnabled, - (o, v) => o.IsMotionEnabled = v); + internal static readonly StyledProperty IsMotionEnabledProperty + = AnimationAwareControlProperty.IsMotionEnabledProperty.AddOwner(); internal static readonly DirectProperty MotionDurationProperty = AvaloniaProperty.RegisterDirect(nameof(MotionDuration), @@ -309,12 +307,10 @@ public class TreeViewItem : AvaloniaTreeItem, set => SetValue(EffectiveNodeCornerRadiusProperty, value); } - private bool _isMotionEnabled; - internal bool IsMotionEnabled { - get => _isMotionEnabled; - set => SetAndRaise(IsMotionEnabledProperty, ref _isMotionEnabled, value); + get => GetValue(IsMotionEnabledProperty); + set => SetValue(IsMotionEnabledProperty, value); } private TimeSpan _motionDuration; diff --git a/src/AtomUI.Theme/IAnimationAwareControl.cs b/src/AtomUI.Theme/IAnimationAwareControl.cs index a16889e25..d6856a943 100644 --- a/src/AtomUI.Theme/IAnimationAwareControl.cs +++ b/src/AtomUI.Theme/IAnimationAwareControl.cs @@ -3,7 +3,6 @@ using System.Reactive.Disposables; using AtomUI.Theme; using Avalonia; using Avalonia.Controls; -using Avalonia.Controls.Primitives; namespace AtomUI.Controls;