5
我使用樣式和控件模板創建了自定義按鈕。我想定義這個按鈕的一些自定義屬性,例如ButtonBorderColour和RotateButtonText。wpf定義樣式的自定義屬性
我該如何解決這個問題?只能使用XAML來完成,還是需要一些C#代碼?
我使用樣式和控件模板創建了自定義按鈕。我想定義這個按鈕的一些自定義屬性,例如ButtonBorderColour和RotateButtonText。wpf定義樣式的自定義屬性
我該如何解決這個問題?只能使用XAML來完成,還是需要一些C#代碼?
這些屬性需要在C#中使用DependencyProperty.Register(或者,如果您沒有創建自定義按鈕Tyoe,DependencyProperty.RegisterAttached)來聲明。下面是如果要創建一個自定義按鈕聲明:
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); }
}
如果你沒有創建一個自定義類,但要定義可以在一個正常的按鈕來設置屬性,使用RegisterAttached:
public static class ButtonCustomisation
{
public static readonly DependencyProperty ButtonBorderColourProperty =
DependencyProperty.RegisterAttached("ButtonBorderColour",
typeof(Color), typeof(ButtonCustomisation)); // optionally metadata for defaults etc.
}
然後可以在XAML中設置它們:
<local:MyButton ButtonBorderColour="HotPink" />
<Button local:ButtonCustomisation.ButtonBorderColour="Lime" />