贝利信息

Avalonia怎么使用AutoCompleteBox控件 Avalonia自动完成输入框

日期:2025-12-27 00:00 / 作者:幻夢星雲
Avalonia 的 AutoCompleteBox 是原生智能输入控件,需配置 ItemsSource、Text、Watermark 及 FilterMode;设 MinimumPrefixLength=0 并手动触发 IsDropDownOpen 可实现点击展开;支持 Custom 过滤与高亮;推荐 Ursa/Semi 主题优化样式。

Avalonia 中的 AutoCompleteBox 是一个开箱即用的智能输入控件,用于在用户输入时动态提供匹配建议。它不依赖第三方库,原生支持,但需注意几个关键配置点才能真正好用。

基础用法与数据绑定

最简方式是在 XAML 中声明控件并绑定数据源:

示例(.axaml):

让下拉列表及时响应点击

默认行为是:必须输入至少一个字符才弹出建议列表。若想点击控件就展开全部选项(类似 ComboBox),需两步调整:

若使用 Ursa.Avalonia 的增强版,它已内置点击展开逻辑,无需手动处理。

自定义过滤与高亮显示

当标准 FilterMode 不够用(比如要按用户对象的多个字段模糊匹配),可启用自定义过滤:

例如匹配 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 提供了更现代的视觉方案:

弹出层高度建议显式设置 MaxDropDownHeight,避免列表过长遮挡界面。