我想要做这样的事更大:WPF触发当属性值超过一定量
<ControlTemplate.Triggers>
<Trigger Property="Width" Value=">25">
<!-- Set values here -->
</Trigger>
</ControlTemplate.Triggers>
无论如何做这样的事情?
我想要做这样的事更大:WPF触发当属性值超过一定量
<ControlTemplate.Triggers>
<Trigger Property="Width" Value=">25">
<!-- Set values here -->
</Trigger>
</ControlTemplate.Triggers>
无论如何做这样的事情?
您需要一个自定义转换器。看看article
SP1中可能已经添加了一些东西,但我过去实现这一点的方式是使用ValueConvertor将值转换为布尔值。
在您的示例中,如果值> 25,则转换器将返回true,否则返回false。如果没有任何意义,我可以举个例子:-)
不是没有代码。通常的做法是:
您可以使用数据触发器并将绑定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用于指出使用ConverterParameter的isLessThanConverter方法。 – cplotts 2013-11-06 21:35:22
我喜欢使用转换器甚至与结合的数据的想法。当使用MVVM模式时,它有助于将视图代码保留在视图模型之外。 – 2010-03-18 14:35:44