代码之家  ›  专栏  ›  技术社区  ›  Jeff B

当你不是父母的时候,如何倾听有影响的事情

  •  2
  • Jeff B  · 技术社区  · 16 年前

    当具有该属性的子属性发生更改时,父属性的排列将无效。

    有人知道这里可以使用的事件吗?

    我是否需要提供覆盖方法并触发事件的自定义父级?

    1 回复  |  直到 16 年前
        1
  •  1
  •   Ray Burns    16 年前

    它只是打电话 InvalidateArrange() 当属性更改时,在父对象上。这将导致WPF稍后调用 Arrange() 在父母身上。这两个调用都无法拦截它(不使用 真正地

    失效arrange() ArrangeOverride 方法,或点击 Arrange 特定控件的方法-例如,如果父控件是 Panel 安排

    当您得到Arrange()回调时,您无法检测对父对象调用InvalidateArrange()的原因,但您可以检测具有 AffectsParentArrange 通过在每个文件中保存属性的旧值,标志是否已更改 安排 调用并将其与以前保存的值进行比较。可以使用循环、字典以及属性列表或调用来将其扩展到多个属性 GetLocalValueEnumerator() .

    推荐文章