2011-12-27 18 views
0

我已經搜索了互聯網的高低,所以社區可以借出的任何幫助都非常感謝。重置格式來代替現有的FlowDocument/Paragraph對象

有沒有一種方法可以更改甚至重置RichTextBox中的Paragraph對象中的所有格式(粗體,顏色等)?我有一個RichTextBox,我正在將語法和錯誤突出顯示應用到行(每行代表一個Paragraph),我希望能夠恢復或更改格式,以便TextPointers可以無縫重新選擇。例如,我希望能夠像Visual Studio一樣進行括號匹配,而不必讓用戶在行的開頭或結尾出現插入符號。

我以錯誤的方式思考這個問題嗎?

This answer almost gets me there.

提前感謝!

回答

0

要知道的關鍵是TextRange構造函數將兩個TextPointer對象作爲開始和結束。這些對象不必以任何方式與選擇相關聯,並且它們具有諸如GetPositionAtOffset的方法來遍歷內容。

下面是一些示例代碼重置字體系列,粗體和斜體在用戶的插入符號的段落,而根本改變的選擇:

var para = richTextBox.CaretPosition.Paragraph; 
var range = new TextRange(para.ContentStart, para.ContentEnd); 
range.ApplyPropertyValue(TextElement.FontFamilyProperty, "Calibri"); 
range.ApplyPropertyValue(TextElement.FontWeightProperty, FontWeights.Normal); 
range.ApplyPropertyValue(TextElement.FontStyleProperty, FontStyles.Normal);