2017-02-16 41 views
0

此过程似乎“中断”了单词并因此干扰了拼写检查。例如,这个单词enter image description here在C#中正确拼写并完全以编程方式写入到FlowDocument中,它似乎在内部分解,因此在稍后打开文件的RTF编辑器(例如Word 2016)上的拼写检查程序将发现拼写错误(如上图所示)。如果单词被复制,然后直接粘贴到纯文本模式,它不会正确显示拼写错误。保存到以Unicode格式编写的RichTextBox的FlowDocument中的DataFormats.Rtf之后

如果我使用TextRange保存FlowDocument,行为并没有什么不同。这个问题没有出现在英文中。问题不一致,该词可能偶尔显示正确。

我怀疑这是RTF写入过程本身的限制或错误。也许偶尔会有某种内部换行符。我想知道是否有人总体上找到了解决这个问题的方法。

更新:这是来自RTF纯文本的图像,以防铃声响起。中间的粉红色文字是“错误”的单词,底部和顶部的粉红色单词基本上是相同的单词,但Word 2016没有发现正确的拼写错误:enter image description here

回答

0

我无法复制使用这个例子的问题(我使用了另一个Unicode字符串)。

public MainWindow() 
    { 
     InitializeComponent(); 
     RichTextBox rtb = new RichTextBox(); 
     rtb.Language = System.Windows.Markup.XmlLanguage.GetLanguage("fa-IR"); 
     rtb.Document.Blocks.Add(new Paragraph(new Run("درست")) { FlowDirection = FlowDirection.RightToLeft }); 

     TextRange tr = new TextRange(rtb.Document.ContentStart, 
          rtb.Document.ContentEnd); 
     using (System.IO.MemoryStream ms = new System.IO.MemoryStream()) 
     { 
      tr.Save(ms, DataFormats.Rtf); 
      ms.Seek(0, System.IO.SeekOrigin.Begin); 
      System.IO.File.WriteAllBytes(@"J:\test.rtf", ms.ToArray()); 
     } 
    } 
+0

也许尝试在页面顶部的一些更多的内容。如果我记得正确的话,我在那里使用的词是el-GR上的“περισσότερα”。 –

+0

测试这个和其他一些Unicode字符。没有什么是错的。 – Ron

相关问题