重置格式以代替现有的流文档/段落对象
本文关键字:文档 对象 段落 格式 | 更新日期: 2023-09-27 18:18:54
我已经在互联网上搜索了高低,所以社区可以提供的任何帮助都非常感谢。
有没有办法从代码隐藏中更改甚至重置RichTextBox
内Paragraph
对象中的所有格式(粗体、颜色等(? 我有一个RichTextBox
,我正在对行(每行由Paragraph
表示(应用语法和错误突出显示,我希望能够就地还原或更改格式,以便可以无缝地重新选择所选文本TextPointers
。 例如,我希望能够像Visual Studio一样进行括号匹配,而无需用户将其插入符号显示在行的开头或结尾。
我是否以错误的方式思考这个问题?
这个答案几乎让我到达那里。
提前感谢!
要知道的关键是 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);