使用wpf添加或删除inkCanvas子级的事件名称

使用wpf添加或删除inkCanvas子级的事件名称,wpf,events,Wpf,Events,我的项目(myPaint)中有一个Inkcanvas 从InkCanvas添加或删除子元素(UiElement)的事件名称是什么。例如,我希望处理以下事件:myInkCanvas.Children.remove(myRectangle)或以下示例: myInkCanvas.Children.Add(myRectangle)您需要这个做什么?您可以改用StrokeCollected事件吗?在向子集合添加元素或从子集合中删除元素时,您无法侦听触发的事件。有一个虚拟受保护的方法被称为,您可以利用它,称

我的项目(myPaint)中有一个Inkcanvas 从InkCanvas添加或删除子元素(UiElement)的事件名称是什么。例如,我希望处理以下事件:myInkCanvas.Children.remove(myRectangle)或以下示例:
myInkCanvas.Children.Add(myRectangle)

您需要这个做什么?您可以改用StrokeCollected事件吗?

在向子集合添加元素或从子集合中删除元素时,您无法侦听触发的事件。有一个虚拟受保护的方法被称为,您可以利用它,称为

这与子集合没有直接联系,因为元素可以单独添加/删除视觉效果。要不是InkCanvas,它可能是安全的

所以你会使用类似于:

public class MyInkCanvas : InkCanvas {
    protected override void OnVisualChildrenChanged(DependencyObject visualAdded, DependencyObject visualRemoved) {
        // TODO: Raise event or do something
        base.OnVisualChildrenChanged(visualAdded, visualRemoved);
    }
}

否strokeCollected事件用于stroke对象,不用于UiElement,例如矩形或椭圆对象