我创建了一个自定义FrameworkElement并通过AddLogicalChild方法添加了多个Children,它们也是FrameworkElements。
但是孩子们没有渲染,甚至没有调用OnRender方法。正如方法MeasureOverride和ArrangeOverride。
我做了一些研究,但我遇到了困难,也许有人可以帮助我。
以下是我制作的两个课程。在ChildElement类中,我在每个方法中设置一个断点。但是除了ctor之外,没有调用方法。
public struct Person
{
public string Name { get; }
public int Age { get; }
public Person() { Name = string.Empty; Age = 0; }
}
答案 0 :(得分:0)
There is a difference between the logical and the visual tree. You want to do this:
public class HostElement : Panel
{
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.Children.Add(ce);
}
}
}
// etc...
}