我有以下元素:
<Button Click="btn_Click" Name="aName">
<Button.Template>
<ControlTemplate TargetType="Button">
<Border Name="tmpBorder" Padding="10">
<TextBlock Text="General" />
</Border>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding doIt}" Value="someString">
<Setter TargetName="tmpBorder" Property="Background" Value="Red" />
</DataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Button.Template>
</Button>
我的目标是在后面的代码中将 doIt
设置为"someString"时,在 ControlTemplate
中设置 Border
元素的背景 . doIt
是后面代码中已定义类的公共成员,将由方法 btn_Click
设置 .
执行方法和设置 doIt
工作正常,但边框的背景不会更改为红色 . 我错过了重要的事吗?
1 回答
这应该工作
EDIT :由于第一种方法不起作用,请直接尝试应用于Border的样式
如果未在控件模板中设置类似背景的属性,则使用触发器进行的更改将不起作用