触发器设置wpf文本框borderbrush无法正常工作

时间:2011-05-24 20:46:33

标签: wpf-controls

当文本框具有焦点时,我试图在简单的文本框上设置背景边框画笔。

这是我的风格

<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不。

我已经注释掉了背景设定器但是如果我取消注释它,我可以看到背景设置为红色。

当文本框有焦点时,我需要做些什么来改变边框颜色?

谢谢。

1 个答案:

答案 0 :(得分:1)

如果您的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>