string FileName = @"E:\rtf";
            if (FileName.Length < 1)
                return;
            FileName += ".rtf";            TextRange documentTextRange = new TextRange(rtContents.Document.ContentStart, rtContents.Document.ContentEnd);            using (FileStream fs = new FileStream(FileName, FileMode.Create))
            {
                //StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.UTF8);
                documentTextRange.Save(fs, System.Windows.DataFormats.Rtf);
            }
保存后是乱码   
 求高手指点

解决方案 »

  1.   

    应该是编码格式问题,你实时Encoding.Default,我之前没用StreamWriter
    如下:
    using (FileStream fs = new FileStream(path, FileMode.Create)) {
    TextRange range;
    range = new TextRange(RTB.Document.ContentStart, RTB.Document.ContentEnd);
    range.Save(fs, DataFormats.Rtf);//DataFormats.Xaml 或者 DataFormats.XamlPackage
    }
      

  2.   

    补充:存入.RTF  图片后面的文字都乱码   图片前面的文字正常  
     求高手指点
      

  3.   

    你发个程序过来我调调
    [email protected]
      

  4.   

    TextRange textRange = new TextRange(RichTextBox1.Document.ContentStart, RichTextBox1.Document.ContentEnd);
    using(MemoryStream ms = new MemoryStream()){
    textRange.Save(ms, DataFormats.Rtf);
    string content = Encoding.Default.GetString(ms.GetBuffer());
    content = content.Replace(@"fcharset0", @"fcharset134");
    using (FileStream fs = new FileStream(@"c:\result.rtf", FileMode.Create)) {
    using(StreamWriter wr = new StreamWriter(fs)){
    wr.Write(content);
    }
    }
    }