首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MeasureOverride并不总是调用子属性的更改

MeasureOverride并不总是调用子属性的更改
EN

Stack Overflow用户
提问于 2013-12-24 21:06:30
回答 2查看 1.5K关注 0票数 2

我写了一个类似于内置StackPanel的面板。除了一个小问题外,我的工作几乎很好:

更改子组件的布局属性并不总是会导致调用面板的MeasureOverride和ArrangeOverride。当子属性的可见性发生变化时,它们总是被调用,但当宽度和高度属性发生变化时,则不会调用它们。

我还没有成功地在一个小到适合包含在StackOverflow问题中的样本中再现这种行为:但是由于它在我所做的小样本中很好地工作,我知道我必须在我的实际面板中做一些可以避免的事情。

那么,我的问题是:在什么情况下,元素在更改与大小相关的属性时不使其父元素无效?

我还标记了这个wpf (我使用Silverlight)以获得更广泛的受众--我怀疑这将同样适用于两个xaml实现。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-02 13:41:50

我想出了我的错误是什么,在什么条件下,面板的MeasureOverride不再被调用到与尺寸相关的属性的某些更改中。

我的小组要求测量儿童的确切大小,而不是小组的大小。

当孩子们开始想要更多的空间时,面板不会调用它的MeasureOverride方法,在最后一次度量调用中,这是可用的--这很有道理。

摘要:您对子组件调用的度量值方法的参数必须表示父面板分配给所有子面板的空间,而不仅仅是调用一个度量值。

票数 1
EN

Stack Overflow用户

发布于 2013-12-25 08:58:30

您必须确保调用基本方法MeasureOverride。

代码语言:javascript
复制
    protected override Size MeasureOverride(Size availableSize)
    {
        // you must call this
        var throwaway = base.MeasureOverride(availableSize);

        // your code here

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

https://stackoverflow.com/questions/20766739

复制
相关文章

相似问题

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