2

を使用してRichTextBox、その場でマークアップする必要のある読み取り専用テキストを表示しています。RichTextBoxマークアップコードをテキストで渡して、コントロールでレンダリングするにはどうすればよいですか?

this is \cf6 sample \cf1 textたとえば、リッチテキストボックスに渡してレンダリングしたいと思います。

現在、を作成FlowDocumentして実行オブジェクトにテキスト値を追加していますが、テキストは文字どおりにレンダリングされます。

RichTextBox fieldLabel = new RichTextBox();

FlowDocument flowDoc = new FlowDocument();
Paragraph myPara = new Paragraph();
Run myRun = new Run(content);

myPara.Inlines.Add(myRun);
flowDoc.Blocks.Add(myPara);
fieldLabel.Document = flowDoc;

値を赤で表示したいのですが、代わりにマークアップが表示されます。

ご入力いただきありがとうございます。

4

2 に答える 2

1

そのようにRTFテキストを割り当てることはできません。そのテキストをストリームに入れてから、そのストリームをRichTextBox.Selection.Load()メソッドに渡す必要があります。例えば

MemoryStream stream = new MemoryStream(UTF8Encoding.Default.GetBytes(yourRTFText));
fieldLabel.Selection.Load(stream, DataFormats.Rtf);
于 2012-08-10T22:07:59.577 に答える
0

あなたは段落に適用する必要があります

// Create a FlowDocument to contain content for the RichTextBox.
FlowDocument myFlowDoc = new FlowDocument();

// Add paragraphs to the FlowDocument.
myFlowDoc.Background = Brushes.LightBlue;
myFlowDoc.Foreground = Brushes.DarkRed;
myFlowDoc.Typography.Capitals = FontCapitals.SmallCaps;
myFlowDoc.Blocks.Add(new Paragraph(new Run("Paragraph 1")));
Paragraph p = new Paragraph(new Run("Paragraph 2"));
p.Foreground = Brushes.Black;
myFlowDoc.Blocks.Add(p);
myFlowDoc.Blocks.Add(new Paragraph(new Run("Paragraph 3")));
RichTextBox myRichTextBox = new RichTextBox();

// Add initial content to the RichTextBox.
myRichTextBox.Document = myFlowDoc;
于 2012-08-10T23:13:13.363 に答える