在Avalonia中,派生类的样式继承是可以正常工作的,但是在使用样式选择器时,可能会出现无法正常工作的情况。
解决此问题的方法是,使用“Style extending”机制。
例如,如果有一个名为“MyButton”的自定义按钮,它派生自Avalonia.Controls.Button,并希望使用样式选择器,我们可以这样做:
示例代码如下:
public class MyButton : Button
{
static MyButton()
{
//定义一个默认的模板
DefaultStyleKeyProperty.OverrideMetadata(typeof(MyButton), new FrameworkPropertyMetadata(typeof(MyButton)));
}
//自定义属性,用于选择器中
public string CustomProperty
{
get { return (string)GetValue(CustomPropertyProperty); }
set { SetValue(CustomPropertyProperty, value); }
}
public static readonly StyledProperty CustomPropertyProperty =
AvaloniaProperty.Register("CustomProperty");
//其它代码
}
在xaml中,我们可以这样写:
使用上述方法,可以正常使用样式选择器,并且在派生类中也能正常工作。
上一篇:Avalonia选项卡控件