如何在WPF中为可编辑组合框应用拼写检查

本文关键字:组合 应用 检查 编辑 WPF | 更新日期: 2023-09-27 18:06:44

WPF内置了SpellCheck功能。拼写检查被添加到TextBoxBase对象中,该对象自动继承所有textual input controls。因此,任何输入控件都将自动派生拼写检查功能。

但我正在寻找一个解决方案来设置editable ComboBox的拼写检查器,它不是从TextBoxBase继承的。有什么方法可以设置可编辑组合框控制器的拼写检查器吗?

如何在WPF中为可编辑组合框应用拼写检查

您需要为ComboBox声明自己的ControlTemplate。在ControlTemplate中,可以从ComboBox的默认ControlTemplate开始,可以在MSDN上的ComboBox Styles and Templates页面上找到。

在默认模板中,您应该看到一个名为PART_EditableTextBoxTextBox。。。正如您可能已经猜到的,这是ComboBox的可编辑部分。然后,您所需要做的就是将SpellCheck.IsEnabled附加属性设置为其上的True,并将新的ControlTemplate应用为ComboBox.Template值:

<TextBox x:Name="PART_EditableTextBox" 
               SpellCheck.IsEnabled="True"
               Style="{x:Null}"
               Template="{StaticResource ComboBoxTextBox}"
               HorizontalAlignment="Left"
               VerticalAlignment="Bottom"
               Margin="3,3,23,3"
               Focusable="True"
               Background="Transparent"
               Visibility="Hidden"
               IsReadOnly="{TemplateBinding IsReadOnly}" />