如何在 WPF 中扩展椭圆类

本文关键字:扩展 WPF | 更新日期: 2023-09-27 18:37:25

这是一个简短的问题。例如,我想向椭圆添加一个字段double weight。我该怎么做?

抱歉有 2 份评论

如何在 WPF 中扩展椭圆类

如果你指的是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是你自己的类(而不是 DependencyObject ),那么扩展当然应该不是问题,我们需要更多信息来帮助您。

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

class WeightedEllipse
{
public Ellipse ellipse;
public double weight;
public WeightedEllipse(double weight)
    {
      this.ellipse=new Ellipse();
      this.weight=weight;
    }
}