2017-02-13 7 views
0

誰でもRTFについて理解できますか?私はフォーカスを失った時に、私が処理するためにカスタムのテキストボックスを作成し、このストリームは、その後フロードキュメントでRTFを作成する

FlowDocument fldoc = new FlowDocument(); 
TextRange tr = new TextRange(
    fldoc.ContentStart, fldoc.ContentEnd); 
tr.Load(inputStream, DataFormats.Rtf); 

をflowdocumentに渡されたいくつかの文字列から充填inputStream

inputStream = new MemoryStream(Encoding.ASCII.GetBytes((myObject.someStr))); 

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は空です。どうすればそれを処理できますか?

答えて

0
fldoc = new FlowDocument(p); 

を支援
関連する問題