我需要创建一个控件来绘制其子元素周围的边框。因此,我创建了一个类,并从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派生出来?
Border
派生出来,至少让语义选择更清晰。我不知道你想要实现什么,但是RoundedBoxDecorator
听起来有点像是Border.CornerRadius
的变通方法。 - grek40