在我得到的自定义 Slider 模板中,主边框的 Height 绑定到TemplateBinding Height属性,我希望 Thumb 元素的高度值相对于我之前提到的TemplateBinding Height属性高 2-3 个像素。有没有什么优雅的方法可以在不涉及 ValueConverters 和 AttachedProperties 的情况下实现这一目标?就像是
Height="{TemplateBinding Height} + 3"
在我得到的自定义 Slider 模板中,主边框的 Height 绑定到TemplateBinding Height属性,我希望 Thumb 元素的高度值相对于我之前提到的TemplateBinding Height属性高 2-3 个像素。有没有什么优雅的方法可以在不涉及 ValueConverters 和 AttachedProperties 的情况下实现这一目标?就像是
Height="{TemplateBinding Height} + 3"
2 个选项:
1)考虑设置控件的边距,其高度绑定为-3。我认为这将满足您对“高 2-3 像素”的描述。如果不是 -3,您可以使用其他边距值。
2)如果 1 不起作用,那么您需要编写一个IValueConverter
类并将其设置为您的绑定的转换器。不幸的是,TemplateBinding 不支持转换器,因为它们是与控件的前向属性的轻量级连接。
您的绑定将改为:
Height="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Height, Converter={StaticResource ReferenceToMyPlus3Converter}}"
这是一个编写转换器示例的链接。