2010-05-30 6 views
0

J'ai besoin d'une bordure personnalisée qui se comporte un peu différemment d'une bordure normale. J'ai fait une classe qui a hérité de décorateur comme suitProblème avec l'enfant de la classe Decorator personnalisée dans 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 

Tout cela fonctionne très bien jusqu'à ce que j'essaie d'ajouter un enfant au contrôle, le contrôle peut être ajouté mais n'est pas visible et semble être déplacé hors BetterBorders visibles Espace Client. Si j'hérite de Border, tout fonctionne bien, qu'est-ce qui me manque?

Répondre

1

facilement fixés en veillant à ce que vous appelez l'implémentation de base de ArrangeOverride

protected override Size ArrangeOverride(Size arrangeSize) 
{ 
    base.ArrangeOverride(arrangeSize); 
    return arrangeSize; 
} 
Questions connexes