WPF RichTextBox中的段落格式?

时间:2010-03-22 16:13:10

标签: wpf flowdocument rich-text-editor

我需要将段落格式应用于富文本框中的选择。我的RTB的行为与StackOverflow上的富文本框相同 - 用户可以在RTB中键入文本,但也可以输入代码块。 RTB将非常简单的格式应用于代码块 - 它将更改字体并将背景颜色应用于整个块,类似于您在下面的代码块中看到的。

更改字体非常简单:

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

现在我需要应用一些段落级格式。我需要将段落边距设置为0,所以我不会在代码行之间得到一个空行,我需要设置段落背景颜色。这是我的问题:我无法弄清楚如何从选择中获取段落元素,以便我可以应用格式。

有什么建议吗?如何应用Margin和Background属性的示例将非常有用。谢谢!

1 个答案:

答案 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");

唯一的限制是突出显示仍然只延伸到文本,而不是控件的右侧。我会把这个问题保持开放几天;如果有人能告诉我如何将背景扩展到控件的右边缘,我会接受你对这个问题的回答。