Я должен создать управление для рисования границы вокруг ее ребенка. Так, я создал класс и получил его от Декоратора:
class RoundedBoxDecorator : Decorator
{
protected override Size ArrangeOverride(Size arrangeSize)
{
//some source
}
protected override void OnRender(DrawingContext dc)
{
//some source
}
}
Это хорошо работает, но у меня есть некоторые сомнения относительно использования Декоратора как предок. Я нашел в MSDN, что нет никаких специальных методов или свойств в нем, только получены от его предков (UIElement или FrameworkElement). ArrangeOverride и OnRender также получены.
Так, что для класса Декоратора было разработано и делает имеет смысл использовать его? Или я могу произойти из FrameworkElement?
Помимо того, что он наследует от FrameworkElement
, класс Decorator
реализует дочерний элемент
(типа UIElement
), а также реализация интерфейса IAddChild
. Таким образом, Декоратор
является наиболее примитивным элементом, который может содержать другой элемент.
По какой причине вы не смогли использовать элемент Border
(наследуемый от Decorator
) для создания границы вокруг дочернего элемента?