如何在 WPF 中扩展椭圆类
本文关键字:扩展 WPF | 更新日期: 2023-09-27 18:37:25
这是一个简短的问题。例如,我想向椭圆添加一个字段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
是你自己的类(而不是 DependencyObject
),那么扩展当然应该不是问题,我们需要更多信息来帮助您。
对于这种情况,我创建了一个类,其中一个属性是椭圆,其他属性是我要添加到椭圆类的属性。这有点脏,但它允许拥有一个包含所有椭圆功能以及我的附加属性的类。
class WeightedEllipse
{
public Ellipse ellipse;
public double weight;
public WeightedEllipse(double weight)
{
this.ellipse=new Ellipse();
this.weight=weight;
}
}