2010-08-26 56 views
2

您可以舉一個例子來說明如何創建直接從FrameworkElement派生的自定義組合控件(在Silverlight 4中)。這裏是一個模型:如何創建從FrameworkElement派生的自定義組合控件

public sealed class CompositeImage : FrameworkElement 
{ 
    private readonly List<Image> images; 

    public CompositeImage() 
    { 
     images = new List<Image>(); 
     images.Add(new Image { Source = "..." }); 
     images.Add(new Image { Source = "..." }); 
    } 

    protected override Size MeasureOverride(Size availableSize) 
    { 
     throw new NotImplementedException(); 
    } 
    protected override Size ArrangeOverride(Size finalSize) 
    { 
     throw new NotImplementedException(); 
    } 
} 
+0

您需要指定爲什麼要這麼做?此外,圖像如何佈置? – AnthonyWJones 2010-08-26 22:02:24

+0

這背後的原因是我不需要Control或UserControl提供的所有功能。所以,不需要讓小事情變得更復雜,因爲他們需要更多的空間和內存以及CPU處理。 – 2010-08-27 11:39:44

回答

1

我想如果你想創建某種「僅限圖片」面板,從FrameworkElement繼承是合理的。從你的代碼示例看,圖像列表將被修復?然後,您可以在MeasureOverride和ArrangeOverride中編寫代碼以將其展開。但正如AnthonyW瓊斯所說,關於你想要完成什麼的更多細節將有助於確定最佳方式。

2

我很難想象任何scenerio哪裏做這樣的事情是可取的。使用UserControl或模板化控件。即使沒有更好地理解你想要達到的目標,甚至還會提供更多的答案。

相關問題