RichTextBoxからRTFを取得する方法
-
03-07-2019 - |
質問
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
他のヒント
2つのRichTextBoxクラスがあります。1つはwinformsフレームワークから、もう1つはWPFフレームワークからです:
System.Windows.Controls.RichTextBox wpfBox;
System.Windows.Forms.RichTextBox winformsBox;
Winforms RichTextBoxのみにRtfプロパティがあり、もう一方にはFlowDocumentを含むDocumentプロパティがあります。
所属していません StackOverflow