我需要将段落格式应用于富文本框中的选择。我的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属性的示例将非常有用。谢谢!
答案 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");
唯一的限制是突出显示仍然只延伸到文本,而不是控件的右侧。我会把这个问题保持开放几天;如果有人能告诉我如何将背景扩展到控件的右边缘,我会接受你对这个问题的回答。