2013-10-30 85 views
0

這是一個簡短的問題。例如,我想將一個字段double weight添加到我的橢圓中。我怎樣才能做到這一點?如何在WPF中擴展Ellipse類

對不起,評論

+0

你試過了什麼?您需要將一個類型爲double的字段添加到派生自Ellipse的類中,稱爲「weight」。如果您遇到問題,請發佈一些代碼。 – nvoigt

+0

['Ellipse'](http://msdn.microsoft.com/en-us/library/system.windows.shapes.ellipse.aspx)是'sealed',你不能擴展它。你在談論什麼樣的「體重」,例如:它是如何顯示的,還是體重的概念? –

+3

您也可以使用[附加屬性](http://msdn.microsoft.com/zh-cn/library/ms749011.aspx)而不是子類。 – nvoigt

回答

1

對於這種情況,我創建了一個類,其中一個屬性是Ellipse,其他屬性是我想要添加到橢圓類中的屬性。這有點髒,但它允許有一個包含所有Ellipse功能以及其他屬性的類。

class WeightedEllipse 
{ 
public Ellipse ellipse; 
public double weight; 

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

如果你指的是System.Windows.Shapes.Ellipse那麼你就不能擴展類2份 - 這是sealed。但是,您可以使用custom attached property來添加您的體重信息。

大意如下的東西線(在 「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)那麼當然延伸不應該是一個問題,我們需要更多的信息來幫助你。

+0

實際上,我有一個程序,它可以與節點和拱門一起工作,現在我有一個列表 nodeList和Ellipse。但是這太大量而且邏輯上是錯誤的。你能給我一些代碼示例,你將屬性附加到Ellipse中嗎? – Corio