【问题标题】:How to get Rich Text Box Character Color?如何获得富文本框字符颜色?
【发布时间】:2011-10-12 22:01:39
【问题描述】:

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

1) 我只需要突出显示富文本框文本的部分字符。

示例:假设我有 100 个没有空格的字符。在此我需要验证用户不能仅突出显示某些允许的字符。

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

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

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

【问题讨论】:

    标签: c# windows desktop-application rich-text-editor


    【解决方案1】:

    我假设这是您正在查询的 WPF RichTextBox,基于“桌面应用程序”标签。所以在 WPF RichTextBox 中有一个 TextRange 对象,上面有一个ApplyPropertyValue

    因此,您需要获得一个跨越所需字符的 TextRange,然后将属性 TextElement.Foreground 应用于您选择的画笔。

    例如,如果您想将字符 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 并迭代运行。

    【讨论】:

    • 这是一个简单的窗口应用程序。
    • 所以你说的是它的 windows 窗体?
    猜你喜欢
    • 1970-01-01
    • 2010-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多