问题描述
|
我试图在文本框具有焦点时在简单的文本框上设置背景borderbrush。
这是我的风格
<Style x:Key=\"TextBoxStyle\" TargetType=\"TextBox\">
<Style.Triggers>
<Trigger Property=\"IsFocused\" Value=\"False\">
<Setter Property=\"BorderBrush\" Value=\"Blue\"/>
</Trigger>
<Trigger Property=\"IsFocused\" Value=\"True\">
<Setter Property=\"BorderBrush\" Value=\"Red\"/>
<!--<Setter Property=\"Background\" Value=\"Red\"/>-->
</Trigger>
IsFocus = False可以正常工作,但是true的触发器不起作用。
我已经注释掉了背景设置器,但是如果我取消注释,则可以看到背景设置为红色。
当文本框具有焦点时,我需要做些什么来改变边框颜色?
谢谢。
解决方法
如果您的BorderThickness为\“ 1 \”(默认),则您获得的聚焦样式是标准3D控件之一。您可以使用contenttemplate重新设置控件的样式,但是一个简单的(尽管不是最优雅的解决方案)就是将边框的粗细设置为\“ 1 \”以外的其他值,就像我在下面的示例中所做的那样。
<TextBox Width=\"200\" Height=\"25\" BorderThickness=\"0.99\">
<TextBox.Style>
<Style TargetType=\"{x:Type TextBox}\">
<Setter Property=\"BorderBrush\" Value=\"Red\" />
<Style.Triggers>
<Trigger Property=\"IsFocused\" Value=\"False\">
<Setter Property=\"BorderBrush\" Value=\"Blue\" />
</Trigger>
</Style.Triggers>
</Style>
</TextBox.Style>