1

FlowDocument(doc1)を別のFlowDocument(doc2)のdoc2の現在のカーソル位置に挿入したいと思います。

ドキュメントが含まれているRichTextBoxのCaretPositionを介してカーソル位置を取得でき、技術的には別のブロックの後または前にブロックを追加できますが、Blocksプロパティのみを使用して指定したカーソル位置に追加することはできません(およびメソッドを追加します)。

指定されたTextPointersにインライン要素(少なくともそのサブクラスのほとんど)を追加できますが、これは私が望むものですが、別のブロックのインラインにブロックを追加することはできません。ブロックを反復処理することはできません。また、基本クラス「ブロック」にはインラインストアプロパティが含まれていません。考えられるすべての特定のブロックタイプにブロックをキャストしようとするのは、まったく良い考えではないようです。

では、doc1のコンテンツ全体をdoc2のカーソル位置に挿入する簡単でクリーンな方法はありますか?

4

1 に答える 1

0

OK、どうやら解決策を見つけました。FlowDocumentsでも動作しますが、そこでRTFが必要でした。

byte[] byteArray = Encoding.Default.GetBytes(rtfString);
MemoryStream stream = new MemoryStream(byteArray);
this.selectedRichTextBox.Selection.Load(stream, DataFormats.Rtf);
stream.Close();
于 2013-01-15T08:41:25.847 に答える