2010-04-20 200 views

回答

4

一点财产以后这样.....(顺便说一句,这XAML是WPF,不silverlight--:设置TemplateBinding可以用下面的XAML来完成这是略有不同)

<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> 

现在,一旦应用这种风格到一个对象,只要您设置对象的背景,模板将使用背景属性(此是按钮控件上的一个属性),并且默认为您在样式中设置的内容(在这种情况下为绿色)

如果要使用不存在于样式对象上的属性,得出您自己的控制权并将其添加为DependencyProperty或使用INotifyPropertyChanged界面。 Here是一个体面的解释给你。

+1

就是这一切吗?如果我想创建自己的我只使用具有独特名称的二传手? – Peter 2010-04-20 18:18:42

+0

该属性必须存在于该对象上,可以作为DependencyProperty或INotifyPropertyChanged属性。在这种情况下,背景是大多数控件的基本属性。 – 2010-04-20 20:27:25

3

需要更多关于你想要做的事情的信息。

{TemplateBinding YourProperty}

{Binding RelativeSource={RelativeSource TemplatedParent}, Path=YourProperty}

+1

我在哪里创建此绑定的来源和默认值? – Peter 2010-04-20 17:27:22