0

我已经在互联网上上下搜索过,因此非常感谢社区可以提供的任何帮助。

有没有办法更改甚至重置来自代码后面的Paragraph对象中的所有格式(粗体、颜色等)?RichTextBox我有一个RichTextBox我正在对行应用语法和错误突出显示(每行由 a 表示Paragraph),我希望能够恢复或更改适当的格式,以便TextPointers可以无缝地重新选择所选文本。例如,我希望能够像 Visual Studio 那样进行括号匹配,而无需用户将插入符号出现在行的开头或结尾。

我是否以错误的方式思考这个问题?

这个答案几乎让我到了那里。

提前致谢!

4

1 回答 1

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);
于 2012-03-07T16:37:57.203 回答