WPF RichTextBox - проверка орфографии не работает с форматированным текстом - PullRequest
1 голос
/ 12 марта 2009

Если я определю RichTextBox следующим образом;

<RichTextBox SpellCheck.IsEnabled="True">
    <FlowDocument />
</RichTextBox>

Когда я набираю работу «Образец» и выделяю первые три буквы жирным шрифтом, проверка орфографии подчеркивает слово.

Исходный 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>

Проверка орфографии успешно прошла слово.

Кто-нибудь сталкивался с этим раньше? Есть ли обходной путь, который я могу использовать?

Спасибо Matt

1 Ответ

1 голос
/ 13 марта 2009

Кажется, есть проблемы с проверкой орфографии и различными локалями.

Если я начну с этого:

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

Я могу воспроизвести вашу ошибку (набрав «Образец» и выделив «Сэм»), но не так:

<RichTextBox SpellCheck.IsEnabled="True">
    <FlowDocument />
</RichTextBox>

У кого-то есть похожая проблема здесь . Microsoft отвечает:

Эта проблема возникает из-за того, что свойство Language в FrameworkElement (и, следовательно, TextBox / RichTextBox) по умолчанию имеет значение "en-US", а вы используете локаль "en-NZ". Когда вы вводите текст в TextBox / RichTextBox, он будет в другой локали, чем текст, установленный в XAML. Средство проверки правописания не пересекает языковые границы, что приводит к поведению, которое вы видите.

...