WPF Decorator类有用吗?

时间:2010-03-27 14:57:21

标签: .net wpf decorator

我需要创建控件来围绕其子项绘制边框。所以,我创建了类并从Decorator中派生出来:

class RoundedBoxDecorator : Decorator
{
    protected override Size ArrangeOverride(Size arrangeSize)
    {
        //some source
    }

    protected override void OnRender(DrawingContext dc)
    {
        //some source
    }
}

它工作正常,但我对使用Decorator作为祖先有一些疑问。我在MSDN中发现其中没有特殊的方法或属性,只是从它的祖先(UIElement或FrameworkElement)派生而来。 ArrangeOverride和OnRender也是派生出来的。

那么,Decorator类的设计是什么,使用它有意义吗?或者我可以从FrameworkElement派生出来?

1 个答案:

答案 0 :(得分:10)

除了它从FrameworkElement继承的内容之外,Decorator类实现了Child属性(类型为UIElement),并实现了IAddChild接口。因此Decorator是可以包含另一个元素的最原始的元素。

您是否有理由无法使用Border元素(继承自Decorator)来创建子元素周围的边框?