我在互联网上搜索得很高,所以社区可以提供的任何帮助都非常值得赞赏。
有没有办法更改甚至重置Paragraph
内RichTextBox
对象中所有格式(粗体,颜色等)的代码?我有一个RichTextBox
我正在应用语法和错误突出显示行(Paragraph
表示的每一行),我希望能够恢复或更改格式,以便{{1}可以无缝地重新选择所选文本。例如,我希望能够像Visual Studio一样进行括号匹配,而不会让用户将其插入符号显示在行的开头或结尾。
我是否以错误的方式思考这个问题?
This answer almost gets me there.
提前致谢!
答案 0 :(得分: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);