2009-03-12 10 views
1

Wenn ich eine RichTextBox wie folgt definieren;WPF RichTextBox - Rechtschreibprüfung funktioniert nicht mit formatiertem Text

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

Als ich in der Arbeit ‚Sample‘ eingeben und die ersten drei Buchstaben fett machen, unterstreicht die Rechtschreibprüfung das Wort.

Die Quell-XAML des Dokuments zeigt, dass die RichTextBox das Wort in zwei separate Läufe aufteilt;

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

Wenn ich manuell ein Dokument mit den folgenden Blöcken konstruiere;

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

Die Rechtschreibprüfung hat das Wort erfolgreich bestanden.

Hat jemand schon mal darüber gestolpert? Gibt es eine Problemumgehung, die ich verwenden kann?

Dank Matt

Antwort

1

Es scheint Probleme mit der Rechtschreibprüfung und verschiedenen Gegenden zu sein.

Wenn ich mit dieser beginnen:

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

ich deinen Fehler reproduzieren kann (durch "Probe" und bolding den "Sam" eingeben), aber nicht mit diesem:

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

Jemand hat ein ähnliches Problem here. Microsoft antwortet:

Dieses Problem tritt auf, weil die Eigenschaft Sprache auf Framework (und damit TextBox/RichTextBox) standardmäßig auf "en-US", und Sie werden mit dem "en-NZ" locale. Wenn Sie Text in TextBox/RichTextBox eingeben, befindet es sich in einem anderen Gebietsschema als der in XAML festgelegte Text. Die Rechtschreibprüfung überschreitet keine Sprachgrenzen, was zu dem angezeigten Verhalten führt.

+0

Vielen Dank für die Antwort und den Link zur MS-Seite. Es sieht so aus, als wäre es die beste Option für mich, bis .Net 4.0 zu warten. – user77159