2010-05-30 68 views
0

我需要一个自定义边框,其渲染方式与普通边框稍有不同。我提出,从装饰继承如下WPF中的自定义装饰器类的子代码

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类客户区。如果我从边界继承一切正常,我错过了什么?

回答

1

通过确保你叫ArrangeOverride

的基实现
protected override Size ArrangeOverride(Size arrangeSize) 
{ 
    base.ArrangeOverride(arrangeSize); 
    return arrangeSize; 
} 
容易固定