2010-01-30 6 views
5

J'ai créé un bouton personnalisé en utilisant un style et un modèle de contrôle. Je voudrais définir quelques propriétés personnalisées pour ce bouton telles que ButtonBorderColour et RotateButtonText.wpf définition de propriétés personnalisées pour les styles

Comment procéder? Peut-il être fait simplement en utilisant XAML ou cela nécessite-t-il du code C# derrière le travail?

Répondre

4

Les propriétés doivent être déclarées en C# à l'aide de DependencyProperty.Register (ou, si vous ne créez pas de tyoe de bouton personnalisé, DependencyProperty.RegisterAttached). Voici la déclaration si vous créez une classe de bouton personnalisé:

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 vous n'êtes pas en train de créer une classe personnalisée, mais que vous souhaitez définir les propriétés qui peuvent être définies sur un bouton normal, utilisez RegisterAttached:

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

Ils peuvent ensuite être définis en XAML:

<local:MyButton ButtonBorderColour="HotPink" /> 
<Button local:ButtonCustomisation.ButtonBorderColour="Lime" /> 
Questions connexes