2009-03-12 7 views
1

Si je définis un RichTextBox comme suit;WPF RichTextBox - la vérification orthographique ne fonctionne pas avec le texte formaté

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

Quand je tape dans le travail « échantillon » et faire les trois premières lettres en gras, le correcteur orthographique souligne le mot. Le code source XAML du document montre que RichTextBox divise le mot en deux passages séparés;

<Paragraph> 
    <Run FontWeight="Bold" xml:lang="en-gb">Sam</Run> 
    <Run xml:lang="en-gb">ple</Run> 
</Paragraph> 

Si je compile manuellement un document avec les blocs suivants;

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

Le vérificateur orthographique a réussi le mot.

Est-ce que quelqu'un a déjà rencontré ça? Y a-t-il une solution de contournement que je peux utiliser?

Merci Matt

Répondre

1

Il semble y avoir des problèmes avec le vérificateur orthographique et lieux différents.

Si je commence par ceci:

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

Je peux reproduire votre erreur (en tapant "Sample" et bolding le "Sam"), mais pas avec ceci:

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

Quelqu'un un problème similaire here. Microsoft répond:

Ce problème se produit parce que la propriété de la langue sur FrameworkElement (et donc TextBox/RichTextBox) par défaut "en-US", et que vous utilisez les paramètres régionaux "en-NZ". Lorsque vous tapez du texte dans TextBox/RichTextBox, il sera dans un environnement linguistique différent de celui défini dans XAML. Le vérificateur d'orthographe ne traverse pas les frontières de la langue, ce qui entraîne le comportement que vous voyez.

+0

Merci pour la réponse et le lien vers la page MS. Il semble que la meilleure option pour moi d'attendre. Net 4.0. – user77159

Questions connexes