如何创建派生自FrameworkElement的自定义复合控件

时间:2010-08-26 17:32:58

标签: c# silverlight user-controls controls silverlight-4.0

您能举例说明如何创建自定义复合控件(在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();
    }
}

2 个答案:

答案 0 :(得分:2)

我无法想象任何想要做这种事情的场景。

使用UserControl或模板化控件。如果没有更好地理解你想要实现的目标,那么它甚至难以提供更多答案。

答案 1 :(得分:1)

如果您希望创建某种“仅图像”面板,我想从FrameworkElement继承是有意义的。从代码示例看,图像列表将被修复?然后你可以在MeasureOverride和ArrangeOverride中编写代码来将它们排出。但正如AnthonyWJones所说,关于你想要实现的目标的更多细节将有助于确定最佳方式。