触发以设置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>
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...