如果我按如下方式定义RichTextBox;
<RichTextBox SpellCheck.IsEnabled="True">
<FlowDocument />
</RichTextBox>
当我输入作品'Sample'并将前三个字母变为粗体时,拼写检查器会突出显示该单词。
文档的源XAML显示RichTextBox将单词分成两个单独的运行;
<Paragraph>
<Run FontWeight="Bold" xml:lang="en-gb">Sam</Run>
<Run xml:lang="en-gb">ple</Run>
</Paragraph>
如果我使用以下块手动构建文档;
<FlowDocument>
<Paragraph>
<Run FontWeight="Bold">Sam</Run>ple
</Paragraph>
</FlowDocument>
拼写检查程序成功传递了这个词。
有没有人遇到过这个?我有可以使用的解决方法吗?
由于 马特
答案 0 :(得分:1)
拼写检查器和不同的区域设置似乎存在问题。
如果我从这开始:
<RichTextBox SpellCheck.IsEnabled="True" xml:lang="en-GB">
<FlowDocument />
</RichTextBox>
我可以重现你的错误(通过输入“Sample”并加粗“Sam”),但不是这样:
<RichTextBox SpellCheck.IsEnabled="True">
<FlowDocument />
</RichTextBox>
有人遇到类似的问题here。微软回复:
出现此问题的原因是FrameworkElement上的Language属性(以及TextBox / RichTextBox)默认为“en-US”,并且您使用的是“en-NZ”语言环境。当您在TextBox / RichTextBox中键入文本时,它将使用与XAML中设置的文本不同的语言环境。拼写检查器不会跨越语言边界,从而导致您看到的行为。