Canvas is useful if you want to shift widgets around, casting a widget as a canvas slot gives you access to the canvas’ child’s screen location. Canvas is also useful if you want to control Z order of canvas’ children. A canvas nested in another canvas can be useful if you want to have a draggable window.
Since your 3d widget component will be pretty much immobile and house just a vertical box populated during run-time with custom Item widgets, no canvas is really needed.
Neither would I bother with canvas for the Item itself.
For the vertical box, I’d try:
[Border](to control colour and opacity of the background, or even assign material)
[VerticalBox](or scrollbox if you worry about overfill)
For the item:
[Border]
[Overlay]
[INDENT][Image](H/V fill)
[TextBlock](align bottom right)[/INDENT]