2011-05-24 49 views
0

我试图在文本框有焦点时在简单的文本框上设置背景边界刷。触发器设置wpf文本框边界刷不工作

这是我的风格

<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 =假工作正常但是触发真正的犯规。

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

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

谢谢。

回答

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>