2010-03-22 84 views
3

我需要將段落格式應用於富文本框中的選擇。我的RTB的行爲與StackOverflow上的富文本框的行爲相同 - 用戶可以在RTB中鍵入文本,但也可以輸入代碼塊。 RTB將對代碼塊應用非常簡單的格式 - 它將更改字體併爲整個塊應用背景顏色,類似於您在下面的代碼塊中看到的內容。在WPF RichTextBox中的段落格式?

更改字體非常簡單:

var textRange = new TextRange(rtb.Selection.Start, rtb.Selection.End); 
textRange.ApplyPropertyValue(TextElement.FontFamilyProperty, "Consolas"); 
textRange.ApplyPropertyValue(TextElement.FontSizeProperty, 10D); 

現在我需要應用一些段落級格式。我需要將段落邊距設置爲0,所以我沒有在代碼行之間留下空行,我需要設置段落背景顏色。這是我的問題:我不知道如何從選擇中獲取段落元素,以便我可以應用格式。

有什麼建議嗎?如何應用邊距和背景屬性的例子會非常有幫助。謝謝!

回答

3

哦,那是容易..通過這個答案帶着一點點更多的研究:

var textRange = new TextRange(TextBox.Selection.Start, TextBox.Selection.End); 
textRange.ApplyPropertyValue(TextElement.FontFamilyProperty, "Consolas"); 
textRange.ApplyPropertyValue(TextElement.FontSizeProperty, 10D); 
textRange.ApplyPropertyValue(Paragraph.MarginProperty, new Thickness(0)); 
textRange.ApplyPropertyValue(Paragraph.BackgroundProperty, "LightSteelBlue"); 

唯一的限制是高亮仍然只能一直延伸文本,而不是向右側的控制。我會把這個問題公開幾天;如果有人能告訴我如何將背景延伸到控件的右邊緣,我會接受你對這個問題的回答。

+0

我試着設置每個上述選擇塊和部分對象的背景屬性。與設置段落背景相同的結果 – 2010-03-22 20:28:42

+0

您是否找到將背景應用於整條線的解決方案?我也需要這個功能。 – Alireza 2013-02-07 17:39:12