# ButtonSpinner 使用文档 本文档介绍 AtomUI ButtonSpinner 控件的各种使用方式,示例代码摘自 Gallery 演示程序。 > 📖 Gallery 源码位置:`controlgallery/AtomUIGallery/ShowCases/Views/Navigation/ButtonSpinnerShowCase.axaml` --- ## 前置准备 在 AXAML 中使用 ButtonSpinner,需要引入以下命名空间: ```xml xmlns:atom="https://atomui.net" xmlns:antdicons="https://atomui.net/icons/antdesign" ``` 在 C# 代码中引入: ```csharp using AtomUI.Desktop.Controls; // ButtonSpinner, ButtonSpinnerLocation using AtomUI.Controls; // SizeType, InputControlStyleVariant, InputControlStatus using Avalonia.Controls.Primitives; // SpinEventArgs, SpinDirection ``` --- ## 1. 基本用法 最简单的 ButtonSpinner 包裹一段文本内容,右侧自带上下操作按钮: ```xml ``` --- ## 2. 三种尺寸 通过 `SizeType` 属性设置控件尺寸,支持 `Large`(40px)、`Middle`(32px,默认)、`Small`(24px)三种。 ```xml ``` --- ## 3. 样式变体 通过 `StyleVariant` 属性设置样式变体,支持 `Outline`(线框,默认)、`Filled`(填充)、`Borderless`(无边框)三种。 ```xml ``` --- ## 4. 禁用状态 通过 `IsEnabled="False"` 禁用控件,三种样式变体均支持: ```xml ``` --- ## 5. 前后附加组件(AddOn) 通过 `LeftAddOn` 和 `RightAddOn` 在输入框外部添加文字或图标附加组件: ```xml ``` --- ## 6. 前后缀(Prefix / Suffix) 通过 `InnerLeftContent` 和 `InnerRightContent` 在输入区域内部添加前缀和后缀: ```xml ``` --- ## 7. 验证状态 通过 `Status` 属性设置 Error 或 Warning 状态,搭配三种样式变体使用: ```xml ``` --- ## 8. Spin 事件处理 ButtonSpinner 自身不管理数值,通过 `Spin` 事件将增减意图传递给外部: ```xml ``` ```csharp // Code-behind private int _currentValue = 0; private void HandleSpin(object? sender, SpinEventArgs e) { if (e.Direction == SpinDirection.Increase) { _currentValue++; } else { _currentValue--; } // 更新 UI... } ``` ### 使用 ValidSpinDirection 限制方向 ```xml ``` --- ## 9. 控制操作按钮 ### 隐藏操作按钮 ```xml ``` ### 禁止 Spin ```xml ``` ### 操作按钮放在左侧 ```xml ``` ### 浮动操作按钮 ```xml ``` --- ## 10. 控制动画 ```xml ``` --- ## 常见组合模式 ### 自定义数值输入器 ```xml ``` ### 带单位的数值调整 ```xml ``` ### 紧凑布局组合 ```xml ```