Sì, però ho visto che non deve solo piazzarli a proprio piacimento, ma poi deve usarli, ovvero clickarci sopra e, per quanto ne so, i Canvas non rispondono poi ad un evento, come click.
Puoi fare in due modi diversi:
1) crei un oggetto List a livello globale che conterrà delle ImageView con le icone; quando l'utente tocca il pannello, aggiungi una nuova ImageView al pannello, nelle coordinate toccate, e la stessa ImageView nella List (e salvi le coordinate). Quando crei la nuova ImageView la inizializzi con un nome evento, come si fa normalmente:
imvPuntoLuce.Initialize("PuntoLuce"). A quel punto tutte le ImageView aggiunte avranno lo stesso nome evento, per cui userai:
Private Sub PuntoLuce_Click
dim imvToccata As ImageView = Sender
' Accendi / spegni
End Sub
2) usando i Canvas, dovresti verificare, sempre tramite le coordinate ricevute nell'evento Touch del pannello, a quale bitmap disegnata tramite canvas corrisponde il "touch" (più complicato, anche se non troppo, ma risparmi un po' di memoria, in quanto non crei le ImageView).
Puoi trovare tanti esempi sui Canvas e MioCanvas.DrawBitMap.
Direi che potresti fare una prova del suggerimento 1), in un progetto solo di prova, appunto. Se poi hai dei problemi, pubblicalo qui e ti daremo una mano.