I've never used Asphyre, but if you really need to draw a component to a surface you probably could use the components Paint() function.

eg: Button1.PaintTo(TheSurface.Canvas,50,50);

To make the button work like normal, just do a simple box collision with the mouse position, and call the buttons onClick event, or whetever you need.
Not a real professional way of doing things, but just an idea.