如何从RichTextBox获取RTF

rpf*_*rpf 10 .net c# wpf richtextbox wpf-controls

如何在RTF中获取文本RichTextBox?我试图这样,但财产不存在.

RichTextBox rtb = new RichTextBox();
string s = rtb.Rtf;
Run Code Online (Sandbox Code Playgroud)

Mit*_*eat 16

要获取用户在RichTextBox内创建的实际XAML:

   TextRange tr = new TextRange(myRichTextBox.Document.ContentStart,
                                myRichTextBox.Document.ContentEnd);
   MemoryStream ms = new MemoryStream();
   tr.Save(ms, DataFormats.Xaml);
   string xamlText = ASCIIEncoding.Default.GetString(ms.ToArray());
Run Code Online (Sandbox Code Playgroud)

编辑:我没有在我面前测试代码,但该TextRange类型的实例有一个Save(to stream)方法,它接受一个DataFormats参数,可以是DataFormats.Rtf

  • 再问一个问题!;) (2认同)
  • 有几点:1)我建议在“MemoryStream”周围添加“using”——从技术上讲,它实现了“IDisposable”,尽管如果省略它,它似乎不会导致内存泄漏。2)你是对的,`tr.Save(ms, DataFormats.Rtf);`是RTF数据所需要的(XAML很有趣,但它不是RTF)。另外,对于执行此操作的读者将数据复制到剪贴板中,请使用“Clipboard.SetText(rtfText, TextDataFormat.Rtf)” (2认同)