我想做这样的事情:
<ControlTemplate.Triggers>
<Trigger Property="Width" Value=">25">
<!-- Set values here -->
</Trigger>
</ControlTemplate.Triggers>
无论如何做这样的事情?
答案 0 :(得分:33)
您可以使用数据触发器并将绑定RelativeSource设置为Self。数据触发器允许绑定和绑定,让您拥有转换器。
示例:
<Button Content="I change colour depending on my width for some reason">
<Button.Triggers>
<DataTrigger
Binding="{Binding
Path=Width,
RelativeSource={RelativeSource Self},
Converter={StaticResource isLessThanConverter},
ConverterParameter=50}"
Value="True">
<Setter Property="Button.Background" Value="Red" />
DataTrigger>
Button.Triggers>
Button>
答案 1 :(得分:20)
您需要自定义转换器。看看article
答案 2 :(得分:5)
不是没有代码。通常的做法是:
答案 3 :(得分:2)
SP1中可能添加了一些东西,但我过去实现这一点的方法是使用ValueConvertor将值转换为布尔值。
在您的示例中,如果值为&gt;,则转换器将返回true。 25,否则为假。如果这没有意义,我可以举一个例子: - )
答案 4 :(得分:0)
数据触发器仅验证准确值,不验证“评估值”(例如大于,小于,加法等)。您需要一个转换器才能转换为精确值。