Avalonia AutoCompleteBox使用教程
Avalonia的AutoCompleteBox是原生智能输入控件,需配置ItemsSource、Text、Watermark及FilterMode;设MinimumPrefixLength=0并手动触发IsDropDownOpen可实现点击展开;支持Custom过滤与高亮;推荐Ursa/Semi主题优化样式。
Avalonia 的 AutoCompleteBox 是原生智能输入控件,需配置 ItemsSource、Text、Watermark 及 FilterMode;设 MinimumPrefixLength=0 并手动触发 IsDropDownOpen 可实现点击展开;支持 Custom 过滤与高亮;推荐 Ursa/Semi 主题优化样式。

Avalonia 中的 AutoCompleteBox 是一个开箱即用的智能输入控件,用于在用户输入时动态提供匹配建议。它不依赖第三方库,原生支持,但需注意几个关键配置点才能真正好用。
基础用法与数据绑定
最简方式是在 XAML 中声明控件并绑定数据源:
ItemsSource提供候选列表(如字符串数组、ObservableCollection) Text双向绑定到 ViewModel 中的字符串属性,控制当前输入值Watermark设置占位提示文字,提升可读性- 推荐搭配
FilterMode="StartsWith"或"Contains",按需选择匹配逻辑
示例(.axaml):
让下拉列表及时响应点击
默认行为是:必须输入至少一个字符才弹出建议列表。若想点击控件就展开全部选项(类似 ComboBox),需两步调整:
- 将
MinimumPrefixLength设为0 - 监听
PointerPressed或点击右侧箭头事件,在代码中设IsDropDownOpen = true
若使用 Ursa.Avalonia 的增强版,它已内置点击展开逻辑,无需手动处理。
自定义过滤与高亮显示
当标准 FilterMode 不够用(比如要按用户对象的多个字段模糊匹配),可启用自定义过滤:
- 设置
FilterMode="Custom" - 在代码中赋值
ItemFilter委托,接收关键词和单个数据项,返回true表示匹配 - 配合
ItemTemplate可高亮关键词(需自行实现文本分段+Span样式)
例如匹配 User.Name 和 User.Email:
this.FindControl("box").ItemFilter = (kw, item) => {
var u = item as User;
return u?.Name?.Contains(kw, StringComparison.OrdinalIgnoreCase) == true ||
u?.Email?.Contains(kw, StringComparison.OrdinalIgnoreCase) == true;
};
样式与主题适配
Avalonia 原生控件样式较简朴,Ursa.Avalonia 或 Semi.Avalonia 提供了更现代的视觉方案:
- 引入命名空间:
xmlns:u="https://irihi.tech/ursa" - 确保已安装
Irihi.Ursa和对应主题包(如Irihi.Ursa.Themes.Semi) - 通过
Styles集成主题,并用Classes控制尺寸(如Small、Bordered)
弹出层高度建议显式设置 MaxDropDownHeight,避免列表过长遮挡界面。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















