WPF RichTextBox-拼写检查不适用于格式化文本

WPF RichTextBox-拼写检查不适用于格式化文本,wpf,richtextbox,spell-checking,Wpf,Richtextbox,Spell Checking,如果我定义一个RichTextBox如下 <RichTextBox SpellCheck.IsEnabled="True"> <FlowDocument /> </RichTextBox> 当我输入作品“Sample”并将前三个字母加粗时,拼写检查器会在单词下面加下划线 文档的源XAML显示RichTextBox正在将单词拆分为两个独立的运行 <Paragraph> <Run FontWeight="Bold" xml:

如果我定义一个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>

山姆
ple
如果我用以下模块手动构建文档

<FlowDocument>
    <Paragraph>
        <Run FontWeight="Bold">Sam</Run>ple
    </Paragraph>
</FlowDocument>

样品
拼写检查器成功地传递了这个单词

以前有人见过这个吗?是否有我可以使用的变通方法

谢谢
马特

拼写检查器和不同地区似乎存在问题

如果我从这个开始:

<RichTextBox SpellCheck.IsEnabled="True" xml:lang="en-GB">
    <FlowDocument />
</RichTextBox>
<RichTextBox SpellCheck.IsEnabled="True">
    <FlowDocument />
</RichTextBox>

我可以复制您的错误(通过键入“Sample”并将“Sam”加粗),但不能使用以下命令:

<RichTextBox SpellCheck.IsEnabled="True" xml:lang="en-GB">
    <FlowDocument />
</RichTextBox>
<RichTextBox SpellCheck.IsEnabled="True">
    <FlowDocument />
</RichTextBox>

有些人也有类似的问题。Microsoft答复:

出现此问题是因为FrameworkElement上的Language属性(因此TextBox/RichTextBox)默认为“en US”,并且您使用的是“en NZ”语言环境。当您在TextBox/RichTextBox中键入文本时,它将位于与XAML中设置的文本不同的语言环境中。拼写检查器不会跨越语言边界,这会导致您看到的行为


拼写检查器和不同的地区似乎有问题

如果我从这个开始:

<RichTextBox SpellCheck.IsEnabled="True" xml:lang="en-GB">
    <FlowDocument />
</RichTextBox>
<RichTextBox SpellCheck.IsEnabled="True">
    <FlowDocument />
</RichTextBox>

我可以复制您的错误(通过键入“Sample”并将“Sam”加粗),但不能使用以下命令:

<RichTextBox SpellCheck.IsEnabled="True" xml:lang="en-GB">
    <FlowDocument />
</RichTextBox>
<RichTextBox SpellCheck.IsEnabled="True">
    <FlowDocument />
</RichTextBox>

有些人也有类似的问题。Microsoft答复:

出现此问题是因为FrameworkElement上的Language属性(因此TextBox/RichTextBox)默认为“en US”,并且您使用的是“en NZ”语言环境。当您在TextBox/RichTextBox中键入文本时,它将位于与XAML中设置的文本不同的语言环境中。拼写检查器不会跨越语言边界,这会导致您看到的行为


感谢您的回复和MS页面的链接。这似乎是我等到.Net 4.0的最佳选择。谢谢你的回复和指向MS页面的链接。它似乎是我等到.NET4.0的最佳选择。