WPF Panel.Children与Panel.InternalChildren - 有什么区别?

m-y*_*m-y 9 wpf children panel measureoverride arrangeoverride

根据MSDN - Panel.InternalChildren属性:

Panel派生的类 应该使用此属性而不是Children 属性来进行内部重写,例如MeasureCoreArrangeCore.


所以,这实际上是一个2部分的问题:

  1. 如果我创建了一个我自己的Panel FooPanel,它来自Panel,我似乎无法覆盖MeasureCoreArrangeCore.我不确定为什么那句话甚至存在.但是,我可以覆盖MeasureOverrideArrangeOverride.所以,我想知道我是否还需要使用InternalChildren这两种方法的属性.

  2. Children物业和InternalChildren物业之间的真正区别是什么?

Cod*_*ked 9

  1. 您将覆盖MeasureOverride和ArrangeOverride,这必须是文档中的错误,或者是针对内部Microsoft员工的.MeasureCore和ArrangeCore由FrameworkElement密封,因此您无法覆盖它们.

  2. 儿童酒店是公共场所,只需致电受保护的InternalChildren.所以要么可能是安全的,因为孩子们会被内联.

MSDN另有说法(http://msdn.microsoft.com/en-us/library/ms754152.aspx),但文档错误.(使用反射器看看Children的实现只是调用InternalChildren)