关于AutoCompleteBox的调研笔记
AutoCompleteBox就是输入文本时,根据当前输入的文本,自动补全。
Avalonia
Avalonia平台,本身就有提供AutoCompleteBox控件,直接使用即可。
https://docs.avaloniaui.net/zh-Hans/docs/reference/controls/autocompletebox
WPF
WPF本身并没有提供类似的控件。所以需要寻找第三方控件。
DotNetProjects.WpfToolkit.Input(推荐)
安装:
Install-Package DotNetProjects.WpfToolkit.Input
命名空间:
xmlns:toolkit="clr-namespace:System.Windows.Controls;assembly=DotNetProjects.Input.Toolkit"
使用示例:
<toolkit:AutoCompleteBox
Grid.Column="1"
Margin="6"
ItemsSource="{Binding GroupItems}"
SelectedItem="{Binding GroupName, Mode=TwoWay}" />
WPFTextBoxAutoComplete(不推荐)
安装:
Install-Package WPFTextBoxAutoComplete
命名空间:
xmlns:behaviors="clr-namespace:WPFTextBoxAutoComplete;assembly=WPFTextBoxAutoComplete"
基本用法:
<TextBox
Width="250"
HorizontalAlignment="Center"
Text="{Binding TestText, UpdateSourceTrigger=PropertyChanged}"
behaviors:AutoCompleteBehavior.AutoCompleteItemsSource="{Binding TestItems}"
/>
忽略大小写:
<TextBox
Width="250"
HorizontalAlignment="Center"
Text="{Binding TestText, UpdateSourceTrigger=PropertyChanged}"
behaviors:AutoCompleteBehavior.AutoCompleteItemsSource="{Binding TestItems}"
behaviors:AutoCompleteBehavior.AutoCompleteStringComparison="InvariantCultureIgnoreCase"
/>
注:这个控件的问题是,如果选项里面有中文也有英文,不知道是不是输入法的问题,输入中文的过程中,会自动适配成英文的选项。