How to make a "EmbedWithin Canvas" on demand?

I have a control which is embedded on canvas and a scrollbar, I want to make virtual/on demand version, but I don’t know how do it, I thought on open canvas event, create controls with control.EmbebedWith until the height, then when scrollbar change destroy the controls which doesn’t fit on canvas height. What approach recommend me?

Right now I have a working example of what I want to change here, the middle control is what I want to change to on demand,

EmbedWithin works with Container Controls. Move the canvas and scrollbar (and all of their logic) from the canvas an put it on a Container control. Or, it’s possible you need the canvas and you can put all of them on the container.

Then it’s as simple as doing something like this (not actual code so there may be errors):

dim cc as new MyContainerControl //Create new instance
cc.embedwithin self, 0, 0, cc.width, cc.height //self is the window

Self can be the window or any RectControl subclass (including Canvas).

Thanks for reply, when I said “control” means containerControl, already works like DownloadContainer example, the problem is I add many containerControls (100+) so, if the containerControl has 80 height, the canvas has to be 800+ and growing… besides the performance problem.