This method kindof works, but it depends on measure and arrange working properly. I have found that measure and arrange are not reliable when not called by the ui thread (or whatever thread normally calls them).
$0$0
$0
$0I have a custom control that renders other controls to bitmaps, then blits them to my custom control. I can't just add the componnets, because it slows the ui down to a crawl... but if I just blit the componets, it is blazing fast. However, my controls do not always arrange/measure properly when I call measure/arrange. I have to call measure/arrange when the main control is measured/arranged or my controls won't attain the correct size.$0
$0$0
$0
$0I would caveat the claim that this method can render controls not on the visual tree, well, because the controls can never be reliably measured/arranged without happening on some undefined ui thread...$0