根据MSDN - Panel.InternalChildren Property:



因此,这实际上是一个两部分的问题:

  • 如果我创建一个自己的面板FooPanel,它是从Panel派生的,那么我似乎无法覆盖MeasureCoreArrangeCore。我不知道为什么那句话仍然存在。但是,我可以覆盖MeasureOverrideArrangeOverride。因此,我想知道是否仍然需要对这两种方法使用InternalChildren属性。
  • Children属性和InternalChildren属性之间的真正区别是什么?
  • 最佳答案

  • 您将覆盖MeasureOverride和ArrangeOverride,这一定是文档中的错误,或者是供内部Microsoft员工使用的。 MeasureCore和ArrangeCore由FrameworkElement密封,因此您不能覆盖它们。
  • child 属性是公共(public)的,仅调用 protected InternalChildren。因此,任何一个都可能是安全的,因为Children会被内联。

  • MSDN否则表示(http://msdn.microsoft.com/en-us/library/ms754152.aspx),但文档错误。 (使用反射器可以看到,Children的实现只是调用InternalChildren)

    09-11 18:26