我用 TextRange textRange = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);
using (MemoryStream ms = new MemoryStream())
{
textRange.Save(ms, System.Windows.DataFormats.Rtf);
ms.Seek(0, SeekOrigin.Begin);
StreamReader sr = new StreamReader(ms);
var rtf = sr.ReadToEnd();
File.WriteAllText("rtfsample.rtf", rtf);
}导出RichTextBox内容
然后用Word打开,发现Margin都无效了
然后再用 var fs = new FileStream("rtfsample.rtf", FileMode.Open, FileAccess.Read); StreamReader streamReader = new StreamReader(fs, System.Text.Encoding.UTF8); using (fs)
{
TextRange text = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);
text.Load(fs, DataFormats.Rtf);
}
streamReader.Dispose();
streamReader = null;
fs.Dispose();
fs = null;Load回来后发现Margin全为"0,0,0,0"
using (MemoryStream ms = new MemoryStream())
{
textRange.Save(ms, System.Windows.DataFormats.Rtf);
ms.Seek(0, SeekOrigin.Begin);
StreamReader sr = new StreamReader(ms);
var rtf = sr.ReadToEnd();
File.WriteAllText("rtfsample.rtf", rtf);
}导出RichTextBox内容
然后用Word打开,发现Margin都无效了
然后再用 var fs = new FileStream("rtfsample.rtf", FileMode.Open, FileAccess.Read); StreamReader streamReader = new StreamReader(fs, System.Text.Encoding.UTF8); using (fs)
{
TextRange text = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);
text.Load(fs, DataFormats.Rtf);
}
streamReader.Dispose();
streamReader = null;
fs.Dispose();
fs = null;Load回来后发现Margin全为"0,0,0,0"
解决方案 »
- C#如何向excel文件中插入另一个excel表
- 请问调试的时候正常,运行的时候不正常有可能是什么原因造成的?
- 高手救命啊,看了一天了,都没看出来怎么回事
- 【答者有分】各位在WinForm 中用的打印方案是是什么?
- 请问,ClickOnce做的更新程序,放在server上,设置了程序运行前检查更新, 为什么在有的client上,更新不到新版本,还是继续旧版本?
- 初学者提问:关于网络通信方面,应该研究那些内容?
- 请高手解,子窗体读取主窗体或其它子窗体内某控件的值。
- SQL SERVER2000 数据库如何与oracle数据库交换数据
- 现在有时间学.Net了,散分,
- 能不能设置透明控件?
- socket关于心跳检测的正确做法
- |ZYCWPF| 在自定义控件中ZRichTextBox : RichText 为什么GetTemplateChild和FindName都得不到我的控件对像呢?
http://baike.baidu.com/view/18817.htm
http://msdn.microsoft.com/en-us/library/aa140283(v=office.10).aspx#rtfspec_20我试了导出到rtf后,margin是保留的。从rtf再读入后margin也是正确的。你会看到导入、导出前后段落间隔不一致,这是因为如果不写margin,导出后margin缺省就是0。而在rtb中,如果不写margin,缺省是字体高度*行间距。你可以把paragraph的缺省margin设成0,这样rtb和word中就可以看到同样的效果。
或者可以在导入rtf后,取得document的xaml,然后删掉里面的 Margin="0,0,0,0" 这样的字符串,再重新装载,这样可以让导出/导入前后的效果一致。