这是一个简短的问题。例如,我想在double weight
我的椭圆中添加一个字段。我怎样才能做到这一点?
抱歉 2 份评论
如果你指的是System.Windows.Shapes.Ellipse
那么你不能扩展类 - 它是sealed
. 但是,您可以使用自定义附加属性来添加您的体重信息。
类似于以下内容:(在“ HelperClass
”中)
public static readonly DependencyProperty WeightProperty = DependencyProperty.RegisterAttached(
"Weight",
typeof(double),
typeof(HelperClass),
new FrameworkPropertyMetadata(0)
);
public static void SetWeight(Ellipse element, double value){
element.SetValue(WeightProperty, value);
}
public static double GetWeight(Ellipse element) {
return (double)element.GetValue(WeightProperty);
}
然后稍后
HelperClass.SetWeight(ellipseInstance, 42d)
如果Ellipse
是您自己的课程(而不是 a
DependencyObject
),那么扩展当然不是问题,我们需要更多信息来帮助您。
对于这种情况,我创建了一个类,其中一个属性是 Ellipse,其他属性是我要添加到椭圆类的属性。这有点脏,但它允许拥有一个包含所有 Ellipse 特征以及我的附加属性的类。
class WeightedEllipse
{
public Ellipse ellipse;
public double weight;
public WeightedEllipse(double weight)
{
this.ellipse=new Ellipse();
this.weight=weight;
}
}