# DropdownButton 使用文档 本文档介绍 AtomUI DropdownButton 控件的各种使用方式,示例代码摘自 Gallery 演示程序。 > 📖 Gallery 源码位置:`controlgallery/AtomUIGallery/ShowCases/Views/Navigation/DropdownButtonShowCase.axaml` --- ## 前置准备 在 AXAML 中使用 DropdownButton,需要引入以下命名空间: ```xml xmlns:atom="https://atomui.net" xmlns:antdicons="https://atomui.net/icons/antdesign" ``` 在 C# 代码中引入: ```csharp using AtomUI.Desktop.Controls; // DropdownButton 控件 using AtomUI.Controls; // SizeType 等共享类型 ``` --- ## 1. 基本用法 最基本的下拉菜单按钮,悬浮触发弹出菜单: ```xml Hover me ``` **要点**: - `DropdownFlyout` 属性接受 `MenuFlyout`,其中包含 `MenuItem` 菜单项 - `MenuItem` 支持 `Header`(文本)、`InputGesture`(快捷键提示)、`Icon`(图标) - 支持嵌套子菜单(MenuItem 中嵌套 MenuItem) --- ## 2. 按钮类型 DropdownButton 继承 Button 的所有类型,通过 `ButtonType` 切换外观风格。点击触发弹出: ```xml Edit File Edit File Edit File Edit File ``` --- ## 3. 带箭头指示 通过 `IsShowArrow="True"` 在弹出菜单上显示指向按钮的箭头。配合不同的 `Placement` 使用效果最佳: ```xml BottomLeft Bottom TopLeft ``` 可以使用 `IsPointAtCenter="True"` 让箭头指向按钮中心: ```xml Centered Arrow ``` --- ## 4. 弹出位置 支持 6 种弹出位置,通过 `Placement` 属性设置: ```xml BottomLeft Bottom BottomRight TopLeft Top TopRight ``` --- ## 5. 菜单项点击事件 通过 `MenuItemClicked` 事件统一监听弹出菜单中所有菜单项的点击: ```xml Actions ``` ```csharp private void HandleMenuItemClicked(object? sender, FlyoutMenuItemClickedEventArgs args) { var menuItem = args.Item; // 获取被点击的菜单项,处理相应业务逻辑 var header = menuItem.Header?.ToString(); Debug.WriteLine($"Clicked: {header}"); } ``` --- ## 6. 自定义下拉指示器 ### 隐藏下拉指示器 ```xml No Arrow Icon ``` ### 自定义指示器图标 ```xml Custom Icon Ellipsis ``` --- ## 7. 继承自 Button 的能力 DropdownButton 继承 Button 的全部属性,以下展示一些常用组合: ### 危险样式 ```xml Danger Actions ``` ### 不同尺寸 ```xml Large Default Small ``` ### 带图标 ```xml Settings ``` ### 禁用状态 ```xml Disabled ``` --- ## 常见组合模式 ### 操作更多菜单 主操作使用独立按钮,更多操作使用 DropdownButton: ```xml Submit More ``` ### 文件操作工具栏 ```xml File Edit ``` ### 悬浮触发 + 自定义延迟 ```xml Slow Hover ```