diff --git a/src/Ursa/Controls/BackTop/BackTop.cs b/src/Ursa/Controls/BackTop/BackTop.cs deleted file mode 100644 index 8a75b49..0000000 --- a/src/Ursa/Controls/BackTop/BackTop.cs +++ /dev/null @@ -1,15 +0,0 @@ -using Avalonia; -using Avalonia.Controls; -using Avalonia.Controls.Primitives; -using Avalonia.Media; - -namespace Ursa.Controls.BackTop; - -public class BackTop : Control -{ - public static readonly AttachedProperty AttachProperty = - AvaloniaProperty.RegisterAttached("Attach"); - - public static void SetAttach(Control obj, bool value) => obj.SetValue(AttachProperty, value); - public static bool GetAttach(Control obj) => obj.GetValue(AttachProperty); -} \ No newline at end of file diff --git a/src/Ursa/Controls/BackTop/ScrollTo.cs b/src/Ursa/Controls/ScrollTo/ScrollTo.cs similarity index 94% rename from src/Ursa/Controls/BackTop/ScrollTo.cs rename to src/Ursa/Controls/ScrollTo/ScrollTo.cs index 1f20340..fc1dcfb 100644 --- a/src/Ursa/Controls/BackTop/ScrollTo.cs +++ b/src/Ursa/Controls/ScrollTo/ScrollTo.cs @@ -1,12 +1,7 @@ using Avalonia; using Avalonia.Controls; -using Avalonia.Controls.Notifications; using Avalonia.Controls.Primitives; -using Avalonia.Interactivity; -using Avalonia.Layout; -using Avalonia.LogicalTree; using Avalonia.Styling; -using Avalonia.VisualTree; using Ursa.Common; namespace Ursa.Controls; diff --git a/src/Ursa/Controls/BackTop/ScrollToButton.cs b/src/Ursa/Controls/ScrollTo/ScrollToButton.cs similarity index 94% rename from src/Ursa/Controls/BackTop/ScrollToButton.cs rename to src/Ursa/Controls/ScrollTo/ScrollToButton.cs index 4d85d0e..51a1df3 100644 --- a/src/Ursa/Controls/BackTop/ScrollToButton.cs +++ b/src/Ursa/Controls/ScrollTo/ScrollToButton.cs @@ -1,7 +1,10 @@ using Avalonia; +using Avalonia.Animation; +using Avalonia.Animation.Easings; using Avalonia.Controls; using Avalonia.Interactivity; using Avalonia.LogicalTree; +using Avalonia.Styling; using Avalonia.VisualTree; using Irihi.Avalonia.Shared.Helpers; using Ursa.Common; @@ -55,13 +58,15 @@ public class ScrollToButton: Button _scroll = null; } _scroll = scroll; + _disposable = ScrollViewer.OffsetProperty.Changed.AddClassHandler(OnScrollChanged); SetVisibility(Direction, _scroll?.Offset); } } - protected override void OnClick() + protected override async void OnClick() { + if (_scroll is null) return; var vector = Direction switch { Position.Top => new Vector(0, double.NegativeInfinity), @@ -70,7 +75,7 @@ public class ScrollToButton: Button Position.Right => new Vector(double.PositiveInfinity, 0), _ => new Vector(0, 0) }; - _scroll?.SetCurrentValue(ScrollViewer.OffsetProperty, vector); + _scroll.SetCurrentValue(ScrollViewer.OffsetProperty, vector); } protected override void OnLoaded(RoutedEventArgs e)