0

我需要TextBox类中名为SelectionColor的属性,用于简单的语法荧光笔 - 我不能直接使用 RichTextBox - 它会导致太多问题,这就是我尝试这样做的原因。

有没有办法使该属性可用于 TextBox?如果不可能,我会尝试自己编写,但我需要一个关于如何做到这一点的想法,基本上它是如何工作的——它是基于在原始文本上绘制字符串吗?

提前致谢。

4

1 回答 1

1

基本上,将 TextBox 用于纯文本以外的任何内容都是一个坏主意。首先,您最终将获得一个新功能来实现,它在 TextBox 中不存在,您将不得不手动处理它。一段时间后,您将实现自定义 RichTextBox 或类似的东西。

第二,你提到的这个问题,也比较难解决。从技术上讲,您可以覆盖绘画功能(如果您想要 TextBox 的新功能,则必须这样做)。然后,您可以让 TextBox 自己绘制并在图像上方绘制彩色文本。不要这样做。你会遇到两个(也许更多)问题:

  • 图像闪烁。一旦原始文本框自行绘制,图像就可以显示在屏幕上(如果您不使用双缓冲)。
  • 文本对齐。很难将彩色文本准确地放置在黑色文本之上,而且您可能会遇到文本渲染问题:您需要清除正在绘制的区域。
于 2013-03-13T15:59:03.047 回答