I need to create control to draw border around its child. So, I have created class and derived it from Decorator:
class RoundedBoxDecorator : Decorator
{
protected override Size ArrangeOverride(Size arrangeSize)
{
//some source
}
protected override void OnRender(DrawingContext dc)
{
//some source
}
}
It works fine, but I have some doubts about using Decorator as ancestor. I have found in MSDN that there are no special methods or properties in it, only derived from its ancestors (UIElement or FrameworkElement). ArrangeOverride and OnRender are also derived.
So, what for Decorator class was designed and does it makes sense to use it? Or I can derive from FrameworkElement?
Besides what it inherits from
FrameworkElement, theDecoratorclass implements aChildproperty (of typeUIElement), as well as implementing theIAddChildinterface. ThusDecoratoris the most primitive element that can contain another element.Is there a reason you were not able to use a
Borderelement (which inherits fromDecorator) to create the border around the child element?