我想做类似于这样的事情:
<ControlTemplate.Triggers>
<Trigger Property="Width" Value=">25">
<!-- Set values here -->
</Trigger>
</ControlTemplate.Triggers>
有没有类似这样的方法?
你可以使用数据触发器(data trigger),并将绑定的RelativeSource设置为Self。 Data Triggers允许绑定,而绑定则让你使用转换器(converters)。
例如:
<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>
不是没有代码后台。通常的做法是:
可能在SP1中已经添加了一些内容,但我过去实现这个功能的方式是使用ValueConvertor将值转换为布尔值。
在您的示例中,如果值大于25,则转换器将返回true,否则返回false。如果这不太清楚,我可以提供一个示例 :-)
ActualWidth
,因为如果未显式设置,Width
属性将为NaN
。 - pogosama