WPF Decorator类有用吗?

dar*_*rja 7 .net wpf decorator

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

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

    protected override void OnRender(DrawingContext dc)
    {
        //some source
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

Dan*_*att 10

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

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