【发布时间】:2023-03-08 19:35:01
【问题描述】:
如果 Silverlight 中画布的 childrencollection 发生了变化,有没有办法 Catch? (当添加或删除孩子时)
我知道 ObservableCollection 有这样的事件,我怎么能为我的 Canvas 增加一个?
【问题讨论】:
标签: c# silverlight canvas children
如果 Silverlight 中画布的 childrencollection 发生了变化,有没有办法 Catch? (当添加或删除孩子时)
我知道 ObservableCollection 有这样的事件,我怎么能为我的 Canvas 增加一个?
【问题讨论】:
标签: c# silverlight canvas children
UIElementCollection 或 Canvas 对象不会引发此类事件,但是,从 Canvas.Children 集合中添加或删除元素将触发度量传递,然后是布局更新传递,这意味着将引发 LayoutUpdated 事件,但是在许多情况下也会引发事件(例如调整大小)。除非您自己完成所有添加和删除操作,否则您可以知道画布的子集合可能已被修改。
【讨论】:
Panel 的唯一职责是设置其子项的位置和大小。这是在 MeasureOverride 和 ArrangeOverride 这两个有点“纯粹”的过程中完成的。继承 ItemsControl 以获得更多控制权。
【讨论】: