C# 在flowdocument中创建RTF运行

C# 在flowdocument中创建RTF运行,c#,rtf,flowdocument,C#,Rtf,Flowdocument,有人能帮我理解RTF吗?我从某个字符串填充了一个inputStream inputStream = new MemoryStream(Encoding.ASCII.GetBytes((myObject.someStr))); 然后该流传递到flowdocument FlowDocument fldoc = new FlowDocument(); TextRange tr = new TextRange( fldoc.ContentStart, fldoc.ContentEnd); tr

有人能帮我理解RTF吗?我从某个字符串填充了一个
inputStream

inputStream = new MemoryStream(Encoding.ASCII.GetBytes((myObject.someStr)));
然后该流传递到flowdocument

FlowDocument fldoc = new FlowDocument();
TextRange tr = new TextRange(
    fldoc.ContentStart, fldoc.ContentEnd);
tr.Load(inputStream, DataFormats.Rtf);
之后,我创建自定义文本框来处理
myObject
的属性

Block curBlock = fldoc.Blocks.FirstBlock;
Inline curInline = (currentBlock as Paragraph).Inlines.FirstInline;
Run curRun = (currentInline as Span).Inlines.FirstInline as Run;
return new CustomTextBox(tr, currentRun.ContentStart, myObject)
失去焦点时,我的自定义文本框会

TextPointer ptr = CurrentRun.ContentStart;
ptr.DeleteTextInRun(ptr.GetTextRunLength(LogicalDirection.Forward));
ptr.InsertTextInRun(mainTextbox.Text);
using (MemoryStream ms = new MemoryStream())
{
    tr.Save(ms, DataFormats.Rtf);
    myObject.someStr = ASCIIEncoding.Default.GetString(ms.ToArray());
}
现在的问题是:如果
myObject.someStr==”
,那么
curBlock==null
,我无法实例化CustomTextBox。我正在努力

Paragraph p = new Paragraph();
Span s = new Span();
Run r = new Run(tr.Text);
s.Inlines.Add(r);
p.Inlines.Add(s);
fldoc.Blocks.Add(new Paragraph());
return new CustomTextBox(tr, r.ContentStart, myObject)
,但tr无论如何都是空的。我怎么办

fldoc = new FlowDocument(p);
帮助