I created a custom FrameworkElement and added multiple Children, which are also FrameworkElements, via the AddLogicalChild method.
But the children are not rendered, the OnRender method isn't even invoked. Just as the methods MeasureOverride and ArrangeOverride.
I did some research but I got stuck, maybe somebody can help me out.
Here are the two classes that I made. In the ChildElement class I set a breakpoint in every method. But none if the methods is invoked except the ctor.
public class HostElement : FrameworkElement
{
public HostElement()
{
ChildElement ce;
Int32 rows = 5;
Int32 cols = 5;
for (Int32 i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
ce = new ChildElement();
this.AddLogicalChild(ce);
}
}
}
protected override void OnRender(DrawingContext drawingContext)
{
base.OnRender(drawingContext);
drawingContext.DrawRectangle(Brushes.LightBlue, null, new Rect(0, 0, this.ActualWidth, this.ActualHeight));
}
}
public class ChildElement : FrameworkElement
{
public ChildElement()
{
}
protected override void OnRender(DrawingContext dc)
{
base.OnRender(dc);
}
protected override Size MeasureOverride(Size availableSize)
{
return base.MeasureOverride(availableSize);
}
protected override Size ArrangeOverride(Size finalSize)
{
return base.ArrangeOverride(finalSize);
}
}