2010-04-20 19 views

Respuesta

4

un poco de algo como esto ..... (por cierto, esto es XAML de WPF, no silverlight-- que es ligeramente diferente)

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

ahora, una vez aplicado este estilo a un objeto, al ajustar el fondo de ese objeto, la plantilla usará la propiedad Background (esto es una propiedad en el control de botón) y se establecerá de manera predeterminada según lo establecido en el estilo (en este caso, verde)

Si desea utilizar una propiedad que no existe en el objeto de su estilo, tiene para derivar su propio control y agregar la propiedad como DependencyProperty o usar la interfaz INotifyPropertyChanged. Here es una explicación decente para usted.

+1

es eso todo lo que hay que hacer? si quiero crear el mío solo uso un setter con un nombre único? – Peter

+0

la propiedad debe existir en el objeto, ya sea como DependencyProperty o como propiedad INotifyPropertyChanged. En este caso, el fondo es una propiedad básica de la mayoría de los controles. –

3

Necesita un poco más de información sobre lo que está tratando de hacer. La creación de un TemplateBinding se puede hacer con el siguiente XAML:

{TemplateBinding YourProperty} o

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

+1

¿dónde creo el origen de este enlace y el valor predeterminado? – Peter

Cuestiones relacionadas