I created my own subclass from the standard WPF canvas to support various additional functions, amongst those I wanted to manage the Z-Index of the elements on the canvas, but in order to do that I need to run some code whenever an element is added or removed to/from the canvas. Unfortunately not the canvas nor it Children property seem to have appropriate events to handle these cases. I created my own subclass from the standard WPF