【问题标题】:Silverlight Canvas children collection changedSilverlight Canvas 儿童系列已更改
【发布时间】:2023-03-08 19:35:01
【问题描述】:

如果 Silverlight 中画布的 childrencollection 发生了变化,有没有办法 Catch? (当添加或删除孩子时)

我知道 ObservableCollection 有这样的事件,我怎么能为我的 Canvas 增加一个?

【问题讨论】:

    标签: c# silverlight canvas children


    【解决方案1】:

    UIElementCollection 或 Canvas 对象不会引发此类事件,但是,从 Canvas.Children 集合中添加或删除元素将触发度量传递,然后是布局更新传递,这意味着将引发 LayoutUpdated 事件,但是在许多情况下也会引发事件(例如调整大小)。除非您自己完成所有添加和删除操作,否则您可以知道画布的子集合可能已被修改。

    【讨论】:

      【解决方案2】:

      Panel 的唯一职责是设置其子项的位置和大小。这是在 MeasureOverride 和 ArrangeOverride 这两个有点“纯粹”的过程中完成的。继承 ItemsControl 以获得更多控制权。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-27
        • 1970-01-01
        • 2016-04-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多