命名空间
AXAML 命名空间前缀:atom(xmlns:atom="https://atomui.net")
继承关系
实现的接口
| 接口 |
说明 |
ISizeTypeAware |
支持 Small/Middle/Large 三种尺寸 |
IMotionAwareControl |
支持开启/关闭弹出动画 |
公共属性(StyledProperty)
| 属性名 |
类型 |
默认值 |
说明 |
SizeType |
SizeType |
Middle |
尺寸类型(共享属性,通过 AddOwner 注册) |
IsMotionEnabled |
bool |
跟随全局 Token EnableMotion |
是否启用子菜单弹出动画 |
DisplayPageSize |
int |
10 |
子菜单弹窗中显示的最大菜单项数量(影响弹窗最大高度) |
ShouldUseOverlayLayer |
bool |
false |
是否使用 OverlayLayer 作为 Popup 宿主 |
| 属性名 |
类型 |
说明 |
IsOpen |
bool |
菜单是否处于打开状态 |
ItemsSource |
IEnumerable? |
数据源绑定 |
ItemTemplate |
IDataTemplate? |
数据模板 |
ItemContainerTheme |
ControlTheme? |
菜单项容器主题 |
公共方法
| 方法名 |
返回类型 |
说明 |
Close() |
void |
关闭菜单及所有子菜单(重写,支持动画关闭) |
继承事件
| 事件名 |
类型 |
说明 |
Opened |
EventHandler<RoutedEventArgs> |
菜单打开时触发 |
Closed |
EventHandler<RoutedEventArgs> |
菜单关闭时触发 |
虚方法(可扩展)
| 方法名 |
说明 |
PrepareMenuItem(MenuItem, object?, int) |
准备菜单项容器时的扩展点,子类可重写以自定义菜单项初始化 |
继承关系
实现的接口
| 接口 |
说明 |
IMenuItemData |
菜单项数据接口(含 ItemKey、Children 等树结构信息) |
公共属性(StyledProperty)
| 属性名 |
类型 |
默认值 |
说明 |
Icon |
PathIcon? |
null |
菜单项图标(new 重写基类,使用 PathIcon 而非 Avalonia Icon) |
SizeType |
SizeType |
Middle |
尺寸类型(共享属性) |
DisplayPageSize |
int |
10 |
子菜单弹窗中显示的最大菜单项数量 |
公共非样式属性
| 属性名 |
类型 |
说明 |
ItemKey |
EntityKey? |
菜单项唯一标识键 |
ParentNode |
ITreeNode<IMenuItemData>? |
父节点引用(ITreeNode 接口实现) |
| 属性名 |
类型 |
说明 |
Header |
object? |
菜单项标题内容 |
HeaderTemplate |
IDataTemplate? |
标题内容模板 |
InputGesture |
KeyGesture? |
快捷键手势(右侧显示快捷键提示) |
Command |
ICommand? |
点击命令 |
CommandParameter |
object? |
命令参数 |
IsSubMenuOpen |
bool |
子菜单是否打开 |
ToggleType |
MenuItemToggleType |
切换类型(None/CheckBox/Radio) |
IsChecked |
bool |
是否选中(配合 ToggleType 使用) |
GroupName |
string? |
Radio 分组名(配合 ToggleType=Radio 使用) |
IsEnabled |
bool |
是否启用 |
公共事件
| 事件名 |
类型 |
路由策略 |
说明 |
IsCheckStateChanged |
EventHandler<RoutedEventArgs> |
Bubble |
IsChecked 状态变化时触发 |
| 事件名 |
类型 |
说明 |
Click |
EventHandler<RoutedEventArgs> |
菜单项被点击时触发 |
SubmenuOpened |
EventHandler<RoutedEventArgs> |
子菜单打开时触发 |
公共方法
| 方法名 |
返回类型 |
说明 |
CloseItemAsync() |
Task |
异步关闭子菜单项(支持动画) |
虚方法(可扩展)
| 方法名 |
说明 |
PrepareMenuItem(MenuItem, object?, int) |
准备子菜单项容器时的扩展点 |
伪类
| 伪类 |
常量 |
触发条件 |
:toplevel |
MenuItemPseudoClass.TopLevel |
当前 MenuItem 为顶层菜单项(直接嵌套在 Menu 中) |
继承的标准伪类
| 伪类 |
触发条件 |
:pointerover |
鼠标悬浮 |
:disabled |
IsEnabled == false |
:pressed |
按下状态 |
:checked |
IsChecked == true |
:empty |
没有子菜单项 |
继承关系
实现的接口
| 接口 |
说明 |
ISizeTypeAware |
支持 Small/Middle/Large 三种尺寸 |
IMotionAwareControl |
支持开启/关闭弹出动画 |
公共属性(StyledProperty)
| 属性名 |
类型 |
默认值 |
说明 |
SizeType |
SizeType |
Middle |
尺寸类型 |
IsMotionEnabled |
bool |
跟随全局 Token |
是否启用弹出动画 |
DisplayPageSize |
int |
10 |
弹窗中显示的最大菜单项数量 |
ShouldUseOverlayLayer |
bool |
false |
是否使用 OverlayLayer 作为 Popup 宿主 |
MaskShadows |
BoxShadows |
默认 |
弹窗阴影效果 |
| 属性名 |
类型 |
说明 |
IsOpen |
bool |
上下文菜单是否打开 |
HorizontalOffset |
double |
水平偏移量 |
VerticalOffset |
double |
垂直偏移量 |
Placement |
PlacementMode |
弹出位置 |
ItemsSource |
IEnumerable? |
数据源 |
ItemTemplate |
IDataTemplate? |
数据模板 |
公共方法
| 方法名 |
返回类型 |
说明 |
Close() |
void |
关闭上下文菜单(重写,支持动画关闭) |
继承事件
| 事件名 |
类型 |
说明 |
Opening |
EventHandler<CancelEventArgs> |
菜单打开前触发,可取消 |
Closing |
EventHandler<CancelEventArgs> |
菜单关闭前触发,可取消 |
Opened |
EventHandler |
菜单已打开 |
虚方法(可扩展)
| 方法名 |
说明 |
PrepareMenuItem(MenuItem, object?, int) |
准备菜单项容器时的扩展点 |
继承关系
公共属性(StyledProperty)
| 属性名 |
类型 |
默认值 |
说明 |
Orientation |
Orientation |
Horizontal |
分隔线方向 |
LineWidth |
double |
1 |
线条宽度(像素) |
数据类型
菜单项数据接口,继承自 ITreeNode<IMenuItemData>。
IMenuItemData 的默认实现。
| 属性名 |
类型 |
默认值 |
说明 |
ParentNode |
ITreeNode<IMenuItemData>? |
null |
父节点引用(internal set) |
ItemKey |
EntityKey? |
null |
唯一标识键 |
Header |
object? |
null |
显示标题 |
Icon |
PathIcon? |
null |
图标 |
IsEnabled |
bool |
true |
是否启用 |
InputGesture |
KeyGesture? |
null |
快捷键手势 |
Children |
IList<IMenuItemData> |
[] |
子节点列表(设置时自动维护 ParentNode 关系) |
分隔线数据模型,继承自 MenuItemData。当 ItemsSource 中的数据项类型为 MenuSeparatorData 时,容器自动创建为 MenuSeparator。
枚举类型
SizeType(来自 AtomUI.Controls)
| 值 |
说明 |
Small |
小号 |
Middle |
中号(默认) |
Large |
大号 |
| 值 |
说明 |
None |
无切换(默认) |
CheckBox |
复选框模式 |
Radio |
单选框模式 |