From 4f1a0970cd472c08f90a043f8b956b024b9ae902 Mon Sep 17 00:00:00 2001 From: Emmanuel Hansen Date: Mon, 7 Sep 2026 15:29:31 +0000 Subject: [PATCH] button spinner - add spinner button popup buttons --- src/Avalonia.Controls/ButtonSpinner.cs | 69 +++++- .../Accents/FluentControlResources.xaml | 14 +- .../Controls/ButtonSpinner.xaml | 211 ++++++++++++------ 3 files changed, 213 insertions(+), 81 deletions(-) diff --git a/src/Avalonia.Controls/ButtonSpinner.cs b/src/Avalonia.Controls/ButtonSpinner.cs index 5330320e1b..48968e2c03 100644 --- a/src/Avalonia.Controls/ButtonSpinner.cs +++ b/src/Avalonia.Controls/ButtonSpinner.cs @@ -54,12 +54,12 @@ namespace Avalonia.Controls { if (_decreaseButton != null) { - _decreaseButton.Click -= OnButtonClick; + _decreaseButton.Click -= OnDecreaseButtonClick; } _decreaseButton = value; if (_decreaseButton != null) { - _decreaseButton.Click += OnButtonClick; + _decreaseButton.Click += OnDecreaseButtonClick; } } } @@ -75,12 +75,48 @@ namespace Avalonia.Controls { if (_increaseButton != null) { - _increaseButton.Click -= OnButtonClick; + _increaseButton.Click -= OnIncreaseButtonClick; } _increaseButton = value; if (_increaseButton != null) { - _increaseButton.Click += OnButtonClick; + _increaseButton.Click += OnIncreaseButtonClick; + } + } + } + + private Button? _popupDecreaseButton; + private Button? PopupDecreaseButton + { + get => _popupDecreaseButton; + set + { + if (_popupDecreaseButton != null) + { + _popupDecreaseButton.Click -= OnDecreaseButtonClick; + } + _popupDecreaseButton = value; + if (_popupDecreaseButton != null) + { + _popupDecreaseButton.Click += OnDecreaseButtonClick; + } + } + } + + private Button? _popupIncreaseButton; + private Button? PopupIncreaseButton + { + get => _popupIncreaseButton; + set + { + if (_popupIncreaseButton != null) + { + _popupIncreaseButton.Click -= OnIncreaseButtonClick; + } + _popupIncreaseButton = value; + if (_popupIncreaseButton != null) + { + _popupIncreaseButton.Click += OnIncreaseButtonClick; } } } @@ -125,6 +161,8 @@ namespace Avalonia.Controls { IncreaseButton = e.NameScope.Find - + @@ -175,7 +233,7 @@ + error border stays visible while hovered (WinUI hover reuses the rest border brush). --> @@ -196,6 +254,13 @@ + + +