Files

5.0 KiB
Raw Permalink Blame History

DropdownButton API 参考

命名空间

namespace AtomUI.Desktop.Controls;

AXAML 命名空间前缀:atom(xmlns:atom="https://atomui.net")


枚举类型

FlyoutTriggerType

下拉菜单触发方式枚举。

值 说明
Click 点击触发弹出
Hover 悬浮触发弹出

PlacementMode(常用值)

弹出层位置枚举,DropdownButton 默认使用 BottomEdgeAlignedLeft。

值 说明
BottomEdgeAlignedLeft 底部左对齐(默认)
BottomEdgeAlignedRight 底部右对齐
Bottom 底部居中
TopEdgeAlignedLeft 顶部左对齐
TopEdgeAlignedRight 顶部右对齐
Top 顶部居中

公共属性(StyledProperty)

DropdownButton 自身定义

属性名 类型 默认值 说明
DropdownFlyout MenuFlyout? null 下拉菜单弹出层,包含 MenuItem 菜单项
TriggerType FlyoutTriggerType Click 触发方式(Click / Hover)
IsShowArrow bool false 是否在弹出菜单上显示指向触发元素的箭头
IsPointAtCenter bool false 箭头是否指向触发元素中心(需配合 IsShowArrow=True)
Placement PlacementMode BottomEdgeAlignedLeft 弹出层位置
PlacementAnchor PopupAnchor 默认值 弹出层锚点(精细控制)
PlacementGravity PopupGravity 默认值 弹出层重力方向(精细控制)
MarginToAnchor double 由 Token 控制 弹出层与锚点(按钮)的间距
MouseEnterDelay int 默认值 悬浮触发延迟(毫秒),仅 TriggerType=Hover 时有效
MouseLeaveDelay int 默认值 离开关闭延迟(毫秒),仅 TriggerType=Hover 时有效
IsShowOpenIndicator bool true 是否显示下拉指示器图标(按钮右侧的箭头)
OpenIndicator PathIcon? DownOutlined 下拉指示器图标,默认为向下箭头(DownOutlined)

继承自 Button 的常用属性

属性名 类型 默认值 说明
ButtonType ButtonType Default 按钮类型(Primary / Default / Dashed / Text / Link)
SizeType SizeType Middle 按钮尺寸(Large / Middle / Small)
Shape ButtonShape Default 按钮形状(Default / Round / Circle)
IsDanger bool false 是否危险按钮样式
IsGhost bool false 幽灵按钮(背景透明)
IsLoading bool false 加载中状态
Icon PathIcon? null 按钮图标
Content object? null 按钮文本内容
Command ICommand? null 点击命令(MVVM)
CommandParameter object? null 命令参数
IsEnabled bool true 是否启用
IsMotionEnabled bool 跟随全局 Token 是否启用过渡动画
IsWaveSpiritEnabled bool 跟随全局 Token 是否启用点击波纹效果

事件

事件名 类型 路由策略 说明
MenuItemClicked EventHandler<FlyoutMenuItemClickedEventArgs> Bubble 弹出菜单中的菜单项被点击时触发
Click EventHandler<RoutedEventArgs> Bubble 按钮本身被点击时触发(继承自 Button)

FlyoutMenuItemClickedEventArgs

属性 类型 说明
Item MenuItem 被点击的菜单项引用

伪类(Pseudo-Classes)

继承自 Button 的伪类

伪类 常量 触发条件
:icononly ButtonPseudoClass.IconOnly Icon 不为 null 且 Content 为 null
:loading ButtonPseudoClass.Loading IsLoading == true
:danger ButtonPseudoClass.IsDanger IsDanger == true
:default ButtonPseudoClass.DefaultType ButtonType == Default
:dashed ButtonPseudoClass.DashedType ButtonType == Dashed
:primary ButtonPseudoClass.PrimaryType ButtonType == Primary
:link ButtonPseudoClass.LinkType ButtonType == Link
:text ButtonPseudoClass.TextType ButtonType == Text

标准伪类

伪类 触发条件
:pointerover 鼠标悬浮
:pressed 按钮按下
:disabled IsEnabled == false
:focus 获得焦点
:focus-visible 通过键盘获得焦点
:flyout-open 下拉菜单处于打开状态

实现的接口

继承自 Button 的所有接口:

接口 定义位置 作用
ISizeTypeAware AtomUI.Controls.Shared 支持 SizeType(Small / Middle / Large)三种尺寸切换
IWaveSpiritAwareControl AtomUI.Controls.Shared 支持点击涟漪(Wave)动画效果
ICompactSpaceAware AtomUI.Controls.Shared 在 Space.Compact 中使用时自动调整圆角
IFormItemAware AtomUI.Controls.Shared 可作为 FormItem 的子控件参与表单验证
IMotionAwareControl AtomUI.Controls.Shared 支持过渡动画开关