在 Avalonia 中实现命令栏(ToolBar)主要通过内置的
ToolBar控件完成,它支持按钮、分割线、下拉菜单等常见工具栏元素,并可与
ICommand绑定实现响应式操作。
使用 ToolBar 基础布局
ToolBar通常放在
ToolBarTray内以获得标准定位和样式支持(如自动停靠、拖拽调整位置),但也可独立使用。推荐搭配
ToolBarTray保证一致行为: 在窗口或用户控件中添加
ToolBarTray作为容器 在其中嵌套一个或多个
ToolBar每个
ToolBar可包含
Button、
ToggleButton、
ComboBox、
Separator等子项
绑定 ICommand 实现命令逻辑
Avalonia 支持 MVVM 模式,
Button.Command可直接绑定到 ViewModel 中实现
ICommand的属性。例如: 在 ViewModel 中定义:
public ICommand SaveCommand { get; },并在构造函数中用 RelayCommand初始化 在 XAML 中绑定:
<button content="保存" command="{Binding SaveCommand}"></button>
支持带参数的命令(如 CommandParameter)和自动启用/禁用(通过
CanExecute)
自定义外观与样式
ToolBar默认风格简洁,可通过
Styles或资源字典定制: 重写
ToolBar的
Template控制整体结构(如背景、边距、阴影) 为内部
Button设置
Classes并在
Styles.xaml中定义统一图标+文字排版 使用
IconType(如
SymbolIcon)或
PathIcon添加矢量图标,提升清晰度
响应式与多工具栏管理
支持动态显示/隐藏工具栏、按功能分组、适配不同屏幕宽度:
用Visibility绑定控制单个
ToolBar显示状态(如“编辑模式下显示格式工具栏”) 多个
ToolBar放入同一
ToolBarTray会自动水平堆叠;垂直布局需配合
Orientation="Vertical"监听窗口尺寸变化,通过
Width或
IsVisible触发工具栏折叠(如小屏隐藏次要按钮,改用
DropDownButton聚合)
