我需要一个自定义边框,其渲染方式与普通边框略有不同。我创建了一个继承自Decorator的类,如下所示
class BetterBorder : Decorator
{
protected override Size ArrangeOverride(Size arrangeSize)
{
return arrangeSize;
}
protected override void OnRender(DrawingContext dc)
{
//these values are calculated elsewhere
dc.DrawGeometry(backgroundBrush, borderPen, pathGeometry);
}
}
//Properties and helper methods below this
所有这一切都正常,直到我尝试将一个子项添加到控件,控件可以添加但不可见,似乎被移出BetterBorders可见客户区。如果我从Border继承一切正常,我错过了什么?
答案 0 :(得分:1)
通过确保调用ArrangeOverride的基本实现
轻松修复protected override Size ArrangeOverride(Size arrangeSize)
{
base.ArrangeOverride(arrangeSize);
return arrangeSize;
}