我已使用样式和控件模板创建了自定义按钮。我想为这个按钮定义一些自定义属性,如ButtonBorderColour和RotateButtonText。
我该如何解决这个问题?它可以只使用XAML完成,还是需要一些C#代码?
答案 0 :(得分:4)
需要使用DependencyProperty.Register在C#中声明属性(或者,如果您没有创建自定义按钮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); }
}
如果您没有创建自定义类,但想要定义可以在普通Button上设置的属性,请使用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" />