如何为自定义控件定义TemplateBinding?
答案 0 :(得分:4)
有点像这样......(顺便说一下,这个xaml是WPF,不是silverlight - 稍微不同)
<style TargetType="{x:Type Button}">
<Setter Property="Background" Value="Green">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid Background={TemplateBinding Background}
</ControlTemplate>
</Setter.Value>
</Setter>
</style>
现在,一旦将此样式应用于对象,每当您设置该对象的背景时,模板将使用Background属性(这是按钮控件上的属性),并且将默认为您在风格(在这种情况下,绿色)
如果要使用不存在于样式对象中的属性,则必须派生自己的控件并将该属性添加为DependencyProperty或使用INotifyPropertyChanged接口。 Here对你来说是一个不错的解释。
答案 1 :(得分:3)
需要更多信息来了解您的目标。可以使用以下XAML设置TemplateBinding
:
{TemplateBinding YourProperty}
或
{Binding RelativeSource={RelativeSource TemplatedParent}, Path=YourProperty}