我知道我以前在某个地方看到过这个问题,但我不确定当时是否有答案。我正在尝试将 SpellCheck 添加到TextBox
WPF、.NET 4.0 中。它在查找和标记不正确的单词方面效果很好,TextBox
如果它不正确,它将替换第一个单词。任何超过第一个单词的内容,它只是将克拉移动到开头TextBox
而不改变任何内容?正如我所说,我在大约 6-9 个月前的某个地方看到了这个,但现在我在 google 中提出的所有内容都涉及替代语言(我现在严格使用英语)。我只是为了完整性而包含了事件方法和样式 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;
}