如何解决触发以设置wpf文本框borderbrush不起作用
| 我试图在文本框具有焦点时在简单的文本框上设置背景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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。