RichTextBox中所选文本的颜色

时间:2014-02-12 19:34:51

标签: c# .net richtextbox textselection

在CSS中,我们可以使用::selection伪标签编辑文本选择的颜色。是否有可能仅为一个控件覆盖选择的默认背景颜色,例如一个RichTextBox?我知道,没有办法通过CSS之类的东西来改变默认行为,但至少可以为此控件覆盖它。

我已经用Google搜索了大约一个小时,但我只找到了语法突出显示的片段。我希望文字是例如黄色而不是典型的Windows蓝色。

修改

喜欢这个小提琴:http://jsfiddle.net/W99Gt/

2 个答案:

答案 0 :(得分:2)

在WPF中,您可以按如下方式完成此操作:

myRichTextBox.SelectionBrush = System.Windows.Media.Brushes.Yellow; // WPF
myRichTextBox.IsInactiveSelectionHighlightEnabled = true;

不幸的是,Windows窗体中无法实现所需的行为(详情here)。解决方法是通过ElementHost在Windows窗体中使用WPF RichTextBox。

<强>参考文献:
TextBoxBase.SelectionBrush Property(WPF)
TextBoxBase.IsInactiveSelectionHighlightEnabled Property(WPF)


编辑:删除了WinForms解决方案,因为SelectionBackColor无法提供所需的行为。

答案 1 :(得分:1)

有一个属性RichTextBox.SelectionColor可以完成这项工作。引用MSDN

  

一种颜色,表示要应用于当前文本的颜色   选择