2010-08-26 110 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或模板化控件。即使没有更好地理解你想要达到的目标,甚至还会提供更多的答案。

相关问题