2010-01-30 15 views
5

Ich habe eine benutzerdefinierte Schaltfläche erstellt, indem Sie eine Stilvorlage und eine Steuerelementvorlage verwenden. Ich möchte einige benutzerdefinierte Eigenschaften für diese Schaltfläche wie ButtonBorderColour und RotateButtonText definieren.wpf Definieren von benutzerdefinierten Eigenschaften für Stile

Wie gehe ich darüber? Kann es getan werden, nur XAML verwendend, oder benötigt es etwas C# Code hinter Arbeit?

Antwort

4

Die Eigenschaften müssen in C# mithilfe von DependencyProperty.Register deklariert werden (oder, wenn Sie keine benutzerdefinierte Schaltfläche tyoe erstellen, DependencyProperty.RegisterAttached). Hier ist die Erklärung, wenn Sie eine benutzerdefinierte Schaltfläche Klasse erstellen:

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); } 
} 

Wenn Sie keine benutzerdefinierte Klasse erstellen, wollen aber Eigenschaften definieren, die auf einem normalen Taste eingestellt werden kann, verwenden Sie Registerattached:

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

Sie können dann in XAML:

<local:MyButton ButtonBorderColour="HotPink" /> 
<Button local:ButtonCustomisation.ButtonBorderColour="Lime" /> 
gesetzt werden
Verwandte Themen