c# - 拼写检查仅替换文本框中的第一个单词

标签 c# wpf textbox spell-checking

我知道我以前在某个地方见过这个问题,但我不确定当时是否有答案。我正在尝试将拼写检查添加到 WPF、.NET 4.0 中的 TextBox 中。它在查找和标记不正确的单词方面工作得很好,如果不正确,它将替换 TextBox 中的第一个单词。但是,除了第一个单词之外,它只是将克拉移动到 TextBox 的开头而不改变任何内容?正如我所说,我大约 6-9 个月前在某个地方看到过这个,但现在我在谷歌中想到的所有内容都涉及替代语言(我现在严格使用英语)。我包含事件方法和样式化 XAML 只是为了完整性,我不认为问题出在于此。

XAML:

<MultiBox:MultiBox Name="callNotes" Grid.Column="1" Width="Auto" Height="Auto" Margin="2,5,15,20" VerticalAlignment="Stretch" AcceptsReturn="True" FontWeight="Bold" GotFocus="callNotes_GotFocus" SelectAllOnGotFocus="False" SpellCheck.IsEnabled="True" xml:lang="en-US" Style="{StaticResource TextBoxStyle}" TextChanged="callNotes_TextChanged" TextWrapping="Wrap" VerticalScrollBarVisibility="Auto" />

<Style x:Key="TextBoxStyle" TargetType="{x:Type MyNamespace:MultiBox}">
    <Setter Property="CharacterCasing" Value="Upper" />
    <Setter Property="HorizontalAlignment" Value="Stretch" />
    <Setter Property="VerticalAlignment" Value="Top" />
    <Setter Property="Height" Value="23" />
    <Setter Property="Width" Value="Auto" />
    <Setter Property="SelectAllOnGotFocus" Value="True" />
    <Setter Property="TextWrapping" Value="Wrap" />
</Style>

代码:

private void callNotes_TextChanged(object sender, TextChangedEventArgs e)
{
    callNotes.Text.ToUpper();
    lineCountOne.Content = ((callNotes.Text.Length / 78) + 1);
}

private void callNotes_GotFocus(object sender, RoutedEventArgs e)
{
    callNotes.CaretIndex = callNotes.Text.Length;
}

最佳答案

查看尝试纠正错误的代码会有所帮助。这是循环遍历所有检测到的错误并接受第一个建议的简单代码。如果您只想修复特定错误,则需要通过获取特定索引处的错误来跳到您感兴趣的特定错误。

        int ndx;
        while ((ndx = callNotes.GetNextSpellingErrorCharacterIndex(0, LogicalDirection.Forward)) != -1) 
        {
            var err = callNotes.GetSpellingError(ndx);
            foreach (String sugg in err.Suggestions)
            {
                err.Correct(sugg);
                break;
            }
        }

关于c# - 拼写检查仅替换文本框中的第一个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14012775/

相关文章:

wpf - 在 WPF ComboBox 上,是否可以为文本框和弹出窗口设置不同的前景色?

javascript - 使用 Javascript 或 jQuery 取消屏蔽文本框密码

c# - .NET 应用程序 - 如何隐藏依赖库的实现?

c# - 如何解决这些编译错误?

c# - 在 C# 中从数据库加载组合框

c# - 错误 : No connection string in application config file. .. 但有一个

c# - C#任务-从UI异步获取值(value)

c# - 在 WPF C# TreeView 中获取子节点的父节点

javascript - 如何以编程方式在 dojo 中设置验证器功能

python - 在pygame中使用文本输入