WPF:带有连接的DataBinding和值的表达式

时间:2013-03-27 18:56:18

标签: wpf xaml data-binding

在我自定义的Slider模板中,主边框的高度绑定到 TemplateBinding Height 属性,我希望Thumb元素的高度值相对于此高出2-3个像素我之前说过的 TemplateBinding Height 属性。 是否有任何优雅的方法来实现,而不涉及ValueConverters和AttachedProperties? 像

这样的东西

Height="{TemplateBinding Height} + 3"

1 个答案:

答案 0 :(得分:1)

2个选项:

1)考虑设置控制的边距,其高度绑定为-3。我认为这将满足您对“更高的2-3像素”的描述。如果不是-3,则可以使用其他边距值。

2)如果1不起作用,那么你需要编写一个IValueConverter类并将其设置为绑定的转换器。不幸的是,TemplateBinding不支持转换器,因为它们是与Control的前向属性的轻量级连接。

您的绑定将改为:

Height="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Height, Converter={StaticResource ReferenceToMyPlus3Converter}}"

这是编写转换器的示例link