4 pagine in totale: <<Indietro 1 2 [3] 4 Avanti >>
Novità 3D
WPF è stato il primo layer per la presentazione a offrire un supporto nativo alla creazione e visualizzazione di contenuti tridimensionali.
Con un supporto pressoché completo a concetti propri del mondo della grafica 3D, quali mesh, camere, luci e materiali, possiamo creare interfacce sempre più accattivanti.
In particolare proprio grazie alla flessibilità nella definizione dei materiali possiamo dare libero sfogo alla propria creatività e per esempio, "avvolgere" una sfera con video diventa davvero un gioco da ragazzi.
Naturalmente la definizione dei materiali non è limitata alla sola possibilità di utilizzare video e immagini, ma spingendosi oltre possiamo usare come texture, Button, TextBox e qualsiasi altro elemento dell'UI.
Nella versione 3.0 questi controlli sono inerti, privi di qualsiasi possibilità d?interazione e semplici immagini incapaci di catturare e reagire a qualsiasi input proveniente dell'utente.
Questo limite con la versione 3.5 viene a cadere; adesso Button, Slider ecc sono capaci di comportarsi esattamente come se non si trovassero "spalmati" su una superficie 3D, grazie all'introduzione del nuovo oggetto Viewport2DVisual3D.
Il tipo Viewport2DVisual3D, derivato direttamente dal tipo Visual3D fornisce l'infrastruttura necessaria a visualizzare elementi interattivi su di una superficie tridimensionale. Possiamo definire la geometria da renderizzare impostando la proprietà Geometry e in seguito non rimane che applicare un materiale.
Creiamo il materiale com'è nostra abitudine, ma con un'unica differenza: dobbiamo indicare mediante l'attached property IsVisualHostMaterial,che sarà tale materiale a ospitare il contenuto "interattivo" definito dalla proprietà Visual, bypassando di fatto la definizione del materiale che diventa perfino superflua.
Il seguente codice, crea un Canvas inserendovi una TextBox e un Button che diventa il contenuto e sarà poi utilizzato per ricoprire la mesh. Lanciando l'applicazione che accompagna l'articolo, possiamo vedere come la TextBox accetti l'input e come il bottone reagisca sia al passaggio del mouse che alla pressione, mediante la quale vengono eseguite una serie di animazioni:
<Viewport2DVisual3D Geometry="{StaticResource inner_mesh}" >
<!--strasformazioni che saranno animate-->
<Viewport2DVisual3D.Transform>
<Transform3DGroup>
<!?trasformazioni omesse-->
</Transform3DGroup>
</Viewport2DVisual3D.Transform>
<!--il materiale visuale-->
<Viewport2DVisual3D.Material>
<DiffuseMaterial Viewport2DVisual3D.IsVisualHostMaterial="True"/>
</Viewport2DVisual3D.Material>
<!--la parte di ui che sarà "spalmata" sulla mesh-->
<Canvas Width="100" Height="100">
<Canvas.Background>
<LinearGradientBrush EndPoint="0.29,1.207" StartPoint="0.281,0.266">
<GradientStop Color="#FFF23030" Offset="0"/>
<GradientStop Color="#FF203363" Offset="1"/>
</LinearGradientBrush>
</Canvas.Background>
<TextBox Canvas.Top="10" Width="100"></TextBox>
<Button Canvas.Top="70" Width="100" Click="Button_Click">
<Button.Triggers>
<!?animazioni omesse-->
</Button.Triggers>
invia
</Button>
</Canvas>
</Viewport2DVisual3D>

Ma le novità per i designer 3D non sono terminate, se visualizzare elementi bidimensionali su superfici 3D non fosse abbastanza allettante, possiamo adesso creare elementi tridimensionali che reagiscono a i classici input provenienti dall'utente, come click del mouse, pressione dei tasti ecc.
Questi servizi sono offerti con l'implementazione di tre nuovi tipi cui fa base il tipo UIElement3D responsabile di erogare i servizi alle classi derivate ModelUIElement3D e ContainerUIElement3D.
4 pagine in totale: <<Indietro 1 2 [3] 4 Avanti >>
Attenzione: Questo articolo contiene un allegato
Contenuti dell'articolo
- Pagina 1
- Pagina 2
- Pagina 3
- Pagina 4
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.





Difficoltà

Stampa
Download


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!
