如何获取RichTextBox
中的RTF文本?我正在尝试像这样获取,但该属性不存在。
RichTextBox rtb = new RichTextBox();
string s = rtb.Rtf;
如何获取RichTextBox
中的RTF文本?我正在尝试像这样获取,但该属性不存在。
RichTextBox rtb = new RichTextBox();
string s = rtb.Rtf;
要获取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());
编辑:我手头没有代码可以测试,但是 TextRange
类型的一个实例有一个Save
方法(用于流式保存),它接受一个DataFormats
参数,可以是DataFormats.Rtf
有两个RichTextBox类,一个来自winforms框架,另一个来自WPF框架:
System.Windows.Controls.RichTextBox wpfBox;
System.Windows.Forms.RichTextBox winformsBox;
MemoryStream
周围添加一个using
-- 从技术上讲,它实现了IDisposable
,尽管如果你省略它似乎不会导致内存泄漏。2)你是正确的,tr.Save(ms, DataFormats.Rtf);
是你需要的RTF数据(XAML很有趣,但它不是RTF)。此外,对于将数据复制到剪贴板的读者,请使用Clipboard.SetText(rtfText, TextDataFormat.Rtf)
。 - jrh