c# - 富文本框如何在没有选择的情况下突出显示文本 block

标签 c# .net winforms richtextbox

我需要在 RTB 中突出显示我的文本的特定部分,不是在更改字体样式/颜色的意义上,而是在使用特定颜色进行 block 选择的意义上。这类似于 Visual Studio 在 Debug模式下突出显示一行的方式。

这里重要的是使用 richtextbox.select 函数WITHOUT实现上述功能,因为我拥有的 richtextbox 会定期更新,如果它在每次更新时调用 select 函数,用户将很难拖动文本,我不希望这种情况发生。

我听说过关于编辑 rtf 的某个地方的解决方案,但我不完全确定如何执行此操作。如果能提供任何帮助,我将不胜感激。

最佳答案

编辑:刚刚意识到的问题是针对 winforms 的。以下答案适用于 WPF,而不是删除我将保留它,以防有人发现它有用。

使用 TextRange(...) 获取文本并应用背景 例如:

TextRange tr = new TextRange(position, nextPosition);
var Br = new SolidColorBrush(Color.FromScRgb(alpha, 1f, 1f, 0f));
tr.ApplyPropertyValue(TextElement.BackgroundProperty, Br);

但也许您应该研究一下您的更新机制并提出更好的解决方案。

关于c# - 富文本框如何在没有选择的情况下突出显示文本 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11186154/

相关文章:

.net - 如何在 F# 中的 .txt 文件中间添加一行

c# - 如何确定我的 winform 在哪个监视器中?

java - 创建jni4.jar文件时显示 'javac' 无法识别为内部或外部命令、可运行程序或批处理文件

c# - ReadOnlyCollections and Threads - 这段代码安全吗?

c# - Azure 存储服务

c# - 将二进制文件字节数组发送到 web api 方法

c# - 通过 WebService 发送电子邮件

c# - json属性小写c#

.net - DateTime 和 xsd :date? 的往返 XML 序列化

c# - UserControl 作为界面,但在设计器中可见