2010-01-30 30 views
5

He creado un botón personalizado utilizando un estilo y una plantilla de control. Me gustaría definir algunas propiedades personalizadas para este botón, como ButtonBorderColour y RotateButtonText.wpf que define las propiedades personalizadas para los estilos

¿Cómo puedo hacer esto? ¿Se puede hacer simplemente usando XAML o requiere algún código C# detrás del trabajo?

Respuesta

4

Las propiedades deben declararse en C# utilizando DependencyProperty.Register (o, si no está creando un nombre de botón personalizado, DependencyProperty.RegisterAttached). Aquí está la declaración si está creando una clase de botón personalizado:

public static readonly DependencyProperty ButtonBorderColourProperty = 
    DependencyProperty.Register("ButtonBorderColour", 
    typeof(Color), typeof(MyButton)); // optionally metadata for defaults etc. 

public Color ButtonBorderColor 
{ 
    get { return (Color)GetValue(ButtonBorderColourProperty); } 
    set { SetValue(ButtonBorderColourProperty, value); } 
} 

Si no va a crear una clase personalizada, pero desea definir propiedades que se pueden configurar en un botón normal, uso RegisterAttached:

public static class ButtonCustomisation 
{ 
    public static readonly DependencyProperty ButtonBorderColourProperty = 
    DependencyProperty.RegisterAttached("ButtonBorderColour", 
    typeof(Color), typeof(ButtonCustomisation)); // optionally metadata for defaults etc. 
} 

Se pueden establecer en XAML:

<local:MyButton ButtonBorderColour="HotPink" /> 
<Button local:ButtonCustomisation.ButtonBorderColour="Lime" /> 
Cuestiones relacionadas