2017-02-13 2 views
0

누구든지 RTF를 이해할 수 있도록 도와 주시겠습니까? I는 inputStream 그런 다음 전달이 스트림 I 초점을 잃고시 myObject의 재산flowdocument에서 RTF를 생성하십시오.

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) 

을 처리하기 위해 사용자 정의 텍스트 상자를 만들고 그 후

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

을 flowdocument 일부 문자열

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

에서 채운 내 사용자 정의 텍스트 상자가 수행

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); 

을하는 데 도움이
관련 문제