如何更改WPF TextBox的突出显示文本颜色?

Ste*_*der 13 wpf resources styles textbox highlighting

WPF TextBox本身使用系统突出显示颜色来绘制所选文本的背景.我想覆盖它并使其保持一致,因为它因操作系统/用户主题而异.

对于ListBoxItems,有一个巧妙的技巧(见下文),您可以覆盖资源键以HighlightBrushKey在焦点设置中自定义系统突出显示颜色:

  <Style TargetType="ListBoxItem">
    <Style.Resources>
      <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="LightGreen"/>
    </Style.Resources>
  </Style>
Run Code Online (Sandbox Code Playgroud)

TextBox不幸的是,同样的技巧并不适用.有没有人有任何其他的想法,除了"覆盖ControlTemplate"?

谢谢你的任何建议!

注意:此行为似乎添加到WPF 4.

Nas*_*ash 11

正如Steve所说:注意:此行为似乎已添加到WPF 4中.

我碰到了同样的问题.

正如Dr.WPF所说

"在当前的.NET版本(3.0和3.5测试版)中完全不可能.控件被硬编码以使用系统设置......它根本不会查看控件模板."

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/bbffa6e3-2745-4e72-80d0-9cdedeb69f7f/


Col*_*nic 9

从.NET 4开始, TextBoxBase.SelectionBrush

例如

<TextBox SelectionBrush="Red" SelectionOpacity="0.5"
         Foreground="Blue" CaretBrush="Blue">  
Run Code Online (Sandbox Code Playgroud)