WPF自定义控件TemplateBinding

时间:2010-04-20 17:15:11

标签: wpf custom-controls

如何为自定义控件定义TemplateBinding?

2 个答案:

答案 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}