2014-12-09 4 views
0

Будучи новым для RichTextBox и Googling часами, я в тупике. Выделив часть абзаца документа потока. Теперь я хочу удалить весь текст до и включить первый «:» в абзаце, но сохраним остальную часть абзаца (включая все его форматирование - XAML). (Это в WPF vs2010).Как удалить строку из абзаца flowdocument, не нарушая MarkUp?

Я уверен, что это просто, но как это делается?

Что я до сих пор прочитаю до первого «:», но как удалить этот текст? Есть ли способ лучше??

public InkRichViewModel(int p, Paragraph paragraph) 
    { 
     this.p = p; 

     //Read the paragraph title from the paragraph 
     TextPointer start = paragraph.ContentStart; 
     TextPointer end = FindWordFromPosition(start, ":"); 

     TextRange textRange = new TextRange(start, end); 
     String Title = textRange.Text; 

     //Remove the title from the paragraph 
     TextPointer endp = paragraph.ContentEnd; 
     TextRange t2 = new TextRange(start, endp); 

      ????????????????????????????????????????? 


     this.Note = paragraph; <---Note is the paragraph without the leading string. 
    } 

Спасибо за все помощь, пожелания.

ответ

0

В моем случае это решает вышеуказанную проблему. Есть ли способ лучше?

// Read paragraph upto and including first ":" 
     string text = (paragraph.Inlines.FirstInline as Run).Text; 
     int r = text.IndexOf(":")+1; 
     string Title = text.Substring(0,r).Trim(); 

     // Remove Title from text; 
     string newtext = text.Substring(r).Trim(); 

     // Insert new inline and remove the old inline. 
     Inline z = paragraph.Inlines.FirstInline; 
     Run runx = new Run(newtext); 
     paragraph.Inlines.InsertBefore(z, runx); 
     paragraph.Inlines.Remove(z); 

     this.Note = paragraph; 
Смежные вопросы