【问题标题】:Spell Check in Rich Text Box breaks in Run富文本框中的拼写检查在运行中中断
【发布时间】:2020-10-05 00:42:44
【问题描述】:
我有一个激活了拼写检查的 RichTextBox。问题是我通常会应用 Foreground 属性更改某些字母的颜色,该属性会在文本中添加 Run,并且拼写检查器在找到 Run 时会划分单词。为了更清楚,我举了一个例子(它是西班牙语,因为我用这种语言配置了 SpellChecker):
"estás" 写得正确,但 SpellChecker 由于 Runs 将单词分为 "e"、"s"、"tá" 和 "s"。有人知道如何解决这个问题吗?
谢谢!
【问题讨论】:
标签:
c#
wpf
richtextbox
spell-checking
【解决方案1】:
这个问题与多个Run 标签无关,这是在将某些属性foreground/background/style 应用于单词的各个部分后发生的。 SpellChecker 使用这种格式拨号没有问题。
当默认RichTextBox 语言设置不正确时,会发生此问题。例如,在这篇文章中描述的情况下,应该定义以下语言设置Language="es-ES":
RichTextBox x:Name="rtb" AllowDrop="True" VerticalScrollBarVisibility="Auto"
Language="es-ES" SpellCheck.IsEnabled="True">
<FlowDocument>
<!-- Here should be content... -->
</FlowDocument>
</RichTextBox>
当默认语言未设置时,RichTextBox 使用 en-us,并且如果用户键入 s 它会变成英语 - 正在发生混合字母,SpellChecker检测为错误。
描述了与混合语言相关的类似问题here。