说明
Trigger 传入触发内容,Items 或 ChildContent 提供菜单体。浮层已内置点击外部自动关闭,宿主无需再接 JS;同页多个 Dropdown 天然互斥,打开一个会自动收起其它。需要复用既有面板外观时用 MenuCssClass 指定样式类,自定义 ChildContent 里的点击可用 Close() 主动收起。放在可滚动表格等裁剪容器内时开启 Portal,浮层会搬到 body 并以 fixed 定位贴靠触发元素,跳出 overflow 裁剪与 sticky 列/固定表头的层叠遮挡,滚动缩放时跟随、贴近视口底部时自动上翻;它的层号跟着触发元素所在那一层往上取,在抽屉、对话框这类高层面板里也不会沉到面板背后;点它里面的菜单项仍算点在原弹层内部,弹层里再套一层下拉不会一选就把外层一起关掉;下拉被回收时浮层一并收走,不会在页面上留一截没人管的菜单。展开只点亮自己那一层的浮层,嵌在弹层里的子下拉不会跟着一起露出来。
常见能力:
- 自定义触发器
- 点击外部自动关闭(内置)
- 多个下拉天然互斥
- MenuCssClass 复用面板样式
- 左右对齐
- 菜单头与自定义内容
- Close() 主动收起
- Portal 传送门(跳出裁剪容器,跟随所在层号)
- 弹层里再套弹层:内层不裁、点内层不关外层
用法
<Dropdown Items="@items" Align="right">
<Trigger><Button Kind="outline" Icon="ellipsis-v" /></Trigger>
</Dropdown>
API 参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
Align |
string |
"left" |
对齐方向:left / right。 |
ChildContent |
RenderFragment |
null |
自定义菜单体,为空时按 Items 渲染。 |
Header |
RenderFragment |
null |
菜单顶部内容。 |
Items |
List<SelectOption> |
null |
菜单项数据。 |
MenuCssClass |
string |
null |
自定义浮层样式类;设置后替换默认的 dropdown-menu,用于复用面板样式。 |
OnOpenChanged |
EventCallback |
— | 事件 |
OpenChanged |
EventCallback<bool> |
— | 事件 展开状态变化(双向)。 |
Placeholder |
string |
null |
占位文本:未选中且未提供自定义 Trigger 时,内置触发按钮显示它。 |
Portal |
bool |
false |
传送门浮层:为 true 时把菜单搬到 body 并以 fixed 定位贴靠触发元素,跳出滚动容器(overflow)的裁剪与 sticky 列/固定表头形成的层叠上下文。用于放在可滚动表格等裁剪容器内的下拉。 |
Trigger |
RenderFragment |
null |
触发元素。 |
Value |
string |
null |
选中值。 |
ValueChanged |
EventCallback<string> |
— | 事件 |
Visible |
bool |
true |
取得或设置组件是否可见,默认为false。 |
VisibleChanged |
EventCallback<bool> |
— | 事件 取得或设置组件可见性变化时的回调事件。 |
Class |
string |
null |
取得或设置组件的CSS类名,用于自定义样式。 |
Disabled |
bool |
false |
取得或设置组件是否禁用,默认为false。 |
Style |
string |
null |
取得或设置组件的内联样式,用于自定义样式。 |
所有组件均继承
BaseComponent,除上表参数外还支持Class、Style、Disabled、Visible。
扫码关注公众号
扫码加入 QQ 群