Trigger to set wpf textbox borderbrush not working
当文本框有焦点时,我试图在一个简单的文本框上设置背景边框。
这是我的风格
1 2 3 4 5 6 7 8 9 | <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" 以外的其他值,就像我在下面的示例中所做的那样。
1 2 3 4 5 6 7 8 9 10 11 | <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> |