我正在尝试在文本为“ABC”时设置文本框的width属性,但触发器不起作用。宽度仍为'40'。
<TextBox Height="23" HorizontalAlignment="Left" Margin="295,211,0,0" Name="textBox1" VerticalAlignment="Top" Width="40" Text="{Binding Text}" >
<TextBox.Style>
<Style TargetType="TextBox">
<Style.Triggers>
<Trigger Property="Text" Value="ABC" >
<Setter Property="Width" Value="120"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
答案 0 :(得分:1)
您需要删除Width
定义中的TextBox
属性,因为这将优先于Trigger
。在Style
设置器中设置宽度如下:
<TextBox Height="23" HorizontalAlignment="Left" Margin="295,211,0,0" Name="textBox1" VerticalAlignment="Top" Text="{Binding Text}" >
<TextBox.Style>
<Style TargetType="TextBox">
<Setter Property="Width" Value="40"/>
<Style.Triggers>
<Trigger Property="Text" Value="ABC" >
<Setter Property="Width " Value="120"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
更新 -
与触发器相比,本地值具有更高的优先级。请参阅此内容 - Dependency Property Value Precedence。