Aggiungere interazione a contenuti 2D mappati su elementi 3D in WPF


Nella versione odierna di WPF non è sempre facile rendere interattivi contenuti 2D che vengono mappati su un elemento 3D. Pensiamo ad esempio di avere un rettangolo che contiene un semplice bottone al quale è associto un evento di click. Se mappiamo questo elemento su una sfera perdiamo l'interattività offerta dal nostro bottone.

La possibilità di rendere dunque interattivi questi elementi 3D non è offerta direttamente da WPF. Però per chi fosse interessato a questa funzionalità consiglio di utilizzare i 3DTools.

I 3DTools sono una libreria che rende facile questa operazione estendendo le funzionalità di WPF. Vi consiglio di leggere questo blog per rendervi conto delle potenzialità.

Come spiegato il "trucco" usato sta nell'intercettare la posizione del mouse che si muove sull'elemento 3D e riportarla su un piano nascoto (ma abilitabile per scopi di debug) che ne rappresenta la controparte in 2D.

L'immagine seguente, presa da uno degli esempi che potete scaricare con le librerie, dovrebbe chiarire il concetto.

s

Come si veve abiltando il flag "Truth" viene mostrato il piano 2D che intercetta l'immagine 3D rappresentata. 

Spero sia utile a qualcuno.

-Pietro

Skip to main content