RadioButton API 参考
命名空间
AXAML 命名空间前缀:atom(xmlns:atom="https://atomui.net")
数据类型
IRadioButtonOption(接口)
单选框选项数据接口,用于 RadioButtonGroup 数据驱动模式。
| 属性 |
类型 |
说明 |
IsEnabled |
bool |
是否启用 |
Content |
object? |
选项内容(文本或其他控件) |
IsChecked |
bool |
是否选中 |
RadioButtonOption(类)
IRadioButtonOption 的默认实现类,所有属性均有默认值:
RadioButtonGroupCheckedChangedEventArgs(类)
选中变化事件参数,继承自 EventArgs。
| 属性 |
类型 |
说明 |
OldCheckedItem |
object? |
之前的选中项 |
NewCheckedItem |
object? |
新的选中项 |
RadioButton 公共属性(StyledProperty)
以下属性定义在 AbstractRadioButton 基类中,RadioButton 直接继承:
| 属性名 |
类型 |
默认值 |
来源 |
说明 |
IsMotionEnabled |
bool |
跟随全局 Token EnableMotion |
AbstractRadioButton |
是否启用过渡动画(边框色、圆点大小过渡) |
IsWaveSpiritEnabled |
bool |
跟随全局 Token EnableWaveSpirit |
AbstractRadioButton |
是否启用选中时的圆形波纹效果 |
继承自 Avalonia.Controls.RadioButton 的常用属性
| 属性名 |
类型 |
默认值 |
说明 |
Content |
object? |
null |
单选框文本内容,可以是字符串或任意控件 |
ContentTemplate |
IDataTemplate? |
null |
内容数据模板 |
IsChecked |
bool? |
false |
是否选中(支持三态,单选框通常仅使用 true/false) |
GroupName |
string? |
null |
分组名称,同名的 RadioButton 互斥 |
Command |
ICommand? |
null |
点击命令(MVVM 绑定) |
CommandParameter |
object? |
null |
命令参数 |
IsEnabled |
bool |
true |
是否启用 |
Foreground |
IBrush? |
由主题控制(ColorText) |
文本颜色 |
Background |
IBrush? |
Transparent |
背景色 |
Cursor |
Cursor |
Hand |
鼠标光标 |
ClipToBounds |
bool |
false |
裁剪超出边界的内容(设为 false 以支持波纹溢出) |
HorizontalAlignment |
HorizontalAlignment |
Left |
水平对齐方式 |
VerticalAlignment |
VerticalAlignment |
Top |
垂直对齐方式 |
RadioButton 伪类(Pseudo-Classes)
| 伪类 |
触发条件 |
说明 |
:checked |
IsChecked == true |
选中状态,指示器变为主色填充 + 白色圆点 |
:unchecked |
IsChecked == false |
未选中状态,指示器为空心圆环 |
:pointerover |
鼠标悬浮 |
未选中时边框色变为 ColorPrimary |
:pressed |
按下 |
— |
:disabled |
IsEnabled == false |
灰色调,不可交互 |
:focus |
获得焦点 |
— |
:focus-visible |
通过键盘获得焦点 |
显示焦点指示框 |
RadioButton 事件
| 事件名 |
类型 |
说明 |
Click |
EventHandler<RoutedEventArgs> |
点击事件(继承自 Button) |
IsCheckedChanged |
RoutedEvent |
选中状态变化路由事件(继承自 ToggleButton) |
RadioButtonGroup 公共属性(StyledProperty)
以下属性定义在 AbstractRadioButtonGroup 基类中,RadioButtonGroup 直接继承:
| 属性名 |
类型 |
默认值 |
来源 |
说明 |
CheckedItem |
object? |
null |
AbstractRadioButtonGroup |
当前选中项。声明式用法中为 RadioButton 实例;数据驱动用法中为数据对象 |
ItemSpacing |
double |
0(主题覆盖为 SpacingXS) |
AbstractRadioButtonGroup |
单选框之间的间距 |
LineSpacing |
double |
0(主题覆盖为 SpacingXS) |
AbstractRadioButtonGroup |
换行间距 |
Orientation |
Orientation |
Horizontal |
AbstractRadioButtonGroup |
排列方向(水平/垂直) |
IsMotionEnabled |
bool |
跟随全局 Token EnableMotion |
AbstractRadioButtonGroup |
是否启用过渡动画(向下传递给子项) |
继承自 Avalonia.Controls.ItemsControl 的常用属性
| 属性名 |
类型 |
默认值 |
说明 |
ItemsSource |
IEnumerable? |
null |
数据源绑定,需实现 IRadioButtonOption 接口 |
ItemTemplate |
IDataTemplate? |
默认绑定 Content |
子项数据模板 |
ItemsPanel |
ITemplate<Panel> |
WrapPanel |
子项布局面板 |
IsEnabled |
bool |
true |
是否启用(影响整组) |
RadioButtonGroup 事件
| 事件名 |
类型 |
说明 |
CheckedChanged |
EventHandler<RadioButtonGroupCheckedChangedEventArgs> |
选中项变化事件,提供 OldCheckedItem 和 NewCheckedItem |
实现的接口
RadioButton 实现的接口
| 接口 |
定义位置 |
作用 |
IWaveSpiritAwareControl |
AtomUI.Controls.Shared |
支持点击涟漪动画,通过 IsWaveSpiritEnabled 属性控制 |
IFormItemAware |
AtomUI.Controls.Shared |
可作为 FormItem 的子控件参与表单验证 |
IFormItemAware 在 RadioButton 中的行为:
GetFormValue() → 返回 IsChecked 值
SetFormValue(value) → 设置 IsChecked(接受 bool?)
ClearFormValue() → 将 IsChecked 设为 null
ValueChanged → 当 IsChecked 变化时触发
RadioButtonGroup 实现的接口
| 接口 |
定义位置 |
作用 |
IMotionAwareControl |
AtomUI.Controls.Shared |
动画开关,IsMotionEnabled 自动传递给所有子 RadioButton |
IFormItemAware |
AtomUI.Controls.Shared |
可作为 FormItem 的子控件参与表单验证 |
IFormItemAware 在 RadioButtonGroup 中的行为:
GetFormValue() → 返回 CheckedItem 值
SetFormValue(value) → 设置 CheckedItem
ClearFormValue() → 将 CheckedItem 设为 null
ValueChanged → 当 CheckedItem 变化时触发