如何在WPF文本框中更改文本范围的背景颜色?

时间:2018-11-19 16:01:20

标签: c# wpf

我想为TextBox控件的文本的某些部分(从开始和结束的绝对char位置)更改背景颜色。

(从用户选择的开始和结束位置开始,或者从预加载的开始和结束位置绝对字符位置开始)

这可能吗?

注意我不想使用RichTextBox或任何Flow Document。

1 个答案:

答案 0 :(得分:0)

除非选择文本足够,否则不能直接通过文本框进行选择。 我建议您仔细考虑选择文本范围是否足够。 您可以根据来回的字符进行操作,并且可以覆盖系统笔刷,使其成为所需的任何颜色。

如果那还不够的话。

您需要在文本框下添加一些其他控件,以使其看起来像是文本框更改的背景。 一种方法是使用您将itemscontrol模板化为文本块并为其背景着色的颜色。

您将其放在文本框下,这样可以透彻显示背景。最好将文本设置为与背景相同的颜色,这样,小的偏移量就不会造成问题。

或者,您可以使用lineargradientbrush并计算字符在哪里。但是,这将非常棘手。