【发布时间】:2018-05-08 09:48:59
【问题描述】:
我有以下元素:
<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 工作正常,但边框的背景不会变为红色。我错过了什么重要的东西吗?
【问题讨论】:
-
@tg24 您是否有理由不使用数据触发器直接将样式应用于边框?
-
@dymanoid 谢谢。
-
@Daniele Sartori:你能给我举个例子来说明你的目标吗?我是 WPF 新手,有时真的很困惑。
标签: c# wpf xaml controltemplate datatrigger