首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不呈现FrameworkElement的子级

不呈现FrameworkElement的子级
EN

Stack Overflow用户
提问于 2015-07-29 06:00:25
回答 1查看 919关注 0票数 1

我创建了一个自定义的FrameworkElement,并通过AddLogicalChild方法添加了多个孩子,它们也是FrameworkElements。

但是子对象不会被呈现,OnRender方法甚至不会被调用。就像MeasureOverride和ArrangeOverride方法一样。

我做了一些研究,但我被卡住了,也许有人能帮我。

下面是我创建的两个类。在ChildElement类中,我在每个方法中都设置了断点。但如果调用了除ctor之外的方法,则无。

代码语言:javascript
复制
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);
    }
}
EN

回答 1

Stack Overflow用户

发布于 2015-07-29 06:18:26

逻辑树和可视化树之间存在差异。您想要这样做:

代码语言:javascript
复制
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...
}

More information about logical vs visual tree

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31687881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档