Dropdown

点击展开的浮层菜单,内置“点击外部自动关闭”。

最后更新

说明

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 交流群二维码 扫码加入 QQ 群