0

这是一个简短的问题。例如,我想在double weight我的椭圆中添加一个字段。我怎样才能做到这一点?

抱歉 2 份评论

4

2 回答 2

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),那么扩展当然不是问题,我们需要更多信息来帮助您。

于 2013-10-30T15:20:37.133 回答
1

对于这种情况,我创建了一个类,其中一个属性是 Ellipse,其他属性是我要添加到椭圆类的属性。这有点脏,但它允许拥有一个包含所有 Ellipse 特征以及我的附加属性的类。

class WeightedEllipse
{
public Ellipse ellipse;
public double weight;

public WeightedEllipse(double weight)
    {
      this.ellipse=new Ellipse();
      this.weight=weight;
    }
}
于 2013-12-27T23:53:12.287 回答