3

我需要将段落格式应用于富文本框中的选择。我的 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 属性的示例将非常有帮助。谢谢!

4

1 回答 1

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

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

于 2010-03-22T16:29:49.220 回答