如何获得丰富的文本框字符颜色

本文关键字:字符 颜色 文本 何获得 | 更新日期: 2023-09-27 18:03:43

我有一个富文本框应用程序,我必须在其中执行两个操作。

1)我必须只突出显示富文本框文本的一部分字符。

示例:假设我有100个没有空白的字符。在这里,我需要验证用户不能只突出显示一些允许的字符。

意味着我有100个字符和管理员只允许20%,然后用户只能突出显示只有20%。字符基色为黑色,这意味着用户不能更改任意80个字符的颜色。用户只能更改任意颜色的20个字符。

2)假设用户突出显示任何文本。然后,用户可以将任何文本标记为注释。

我已经做了很多搜索,但我没有得到任何解决方案,请帮助我找到解决方案

如何获得丰富的文本框字符颜色

好吧,我假设这是一个WPF RichTextBox你正在查询,基于'桌面应用程序'标签。所以在WPF RichTextBox中你有一个TextRange对象,它有一个ApplyPropertyValue。

你会想要得到一个TextRange它跨越你想要的字符然后应用TextElement属性。前景到您选择的画笔

例如,如果您想将字符20-40突出显示为红色,您可以这样做:

var range = new TextRange(
  rtb.Document.ContentStart.GetPositionAtOffset(20),
  rtb.Document.ContentStart.GetPositionAtOffset(40));
range.ApplyProperty(TextElement.ForegroundProperty, Brushes.Red);

值得注意的是,当你应用这样的属性时,内部文本将被分解为多个运行,并且通过偏移量获取位置将不会以相同的方式工作。在这种情况下,你应该得到一个TextRange为整个文档和调用ClearAllProperties或使用TextPointer和迭代运行。