Deepzoom in Silverlight 2.0
di Marco De Sanctis, in Silverlight 2.0, 18 novembre 2008
Il sistema di coordinate di MultiScaleImage
MultiScaleImage espone un set di API piuttosto ridotto e semplice da utilizzare per pilotarne la visualizzazione, anche se ciò richiede di metabolizzarne il sistema di coordinate che è forse l'aspetto più ostico di questa tecnologia, tanto da meritare un paragrafo a parte.
Una scena è un'immagine rettangolare contraddistinta da una larghezza e da un'altezza o, meglio, da una larghezza e da un aspect ratio, inteso come rapporto tra la larghezza e l'altezza; tali grandezze sono poi normalizzate rispetto alla larghezza della scena e pertanto, in Deep Zoom, ogni scena avrà sempre una larghezza pari a 1 e un'altezza pari a 1/Aspect Ratio:

MultiScaleImage visualizza la scena all'interno di un oggetto chiamato ViewPort, la cui larghezza è esposta dalla proprietà ViewPortWidth ed è anch'essa normalizzata rispetto alla larghezza della scena stessa. L'aspetto interessante è che questa stessa proprietà può essere utilizzata anche per controllare il livello di zoom, poiché l'uno è l'inverso dell'altra:
- Quando ViewPortWidth è pari a 1, il ViewPort ha la stessa larghezza dell'immagine (zoom del 100%)
- Quando ViewPortWidth vale 0,5 ha una larghezza pari alla metà dell'immagine, ma dato che le dimensioni del ViewPort sono costanti, quest'ultima risulta ingrandita del doppio (e quindi si ha uno zoom del 200%)
- Quando ViewPortWidth vale 2, il ViewPort ha una larghezza pari al doppio dell'immagine, che viene perciò rimpicciolita della metà (zoom del 50%)

I punti all'interno del ViewPort possono essere identificati tramite un sistema di coordinate "logico", che hanno come origine il punto (0; 0) posto nell'angolo in alto a sinistra della scena (attenzione: della scena, e non del controllo MultiScaleImage) e sono normalizzate rispetto alla sua larghezza, il che vuol dire che, ad esempio, il punto (1; 0) è posizionato nell'angolo in alto a destra della scena, mentre i punti sul lato inferiore hanno tutti un'ordinata pari a 1 / AspectRatio.

Lo stesso sistema di assi è utilizzato per specificare le coordinate del punto ViewPortOrigin, altra proprietà di MultiScaleImage, che indica la posizione dell'angolo in alto a sinistra del ViewPort rispetto allo stesso vertice della scena.

Attenzione: Questo articolo contiene un allegato
Contenuti dell'articolo
Sullo stesso argomento
-
Applicazioni Silverlight con il cloud computing su Windows Azure
-
Aggiungere interattività al controllo Chart di Silverlight 3.0
-
Realizzare un sito completo in Silverlight: una galleria fotografica
-
Supporto audio e video in Silverlight 3.0
-
Effetti speciali sulle immagini in Silverlight 3.0
-
Anteprima di Expression Blend 3.0
-
Le novità di Silverlight 3.0 beta 1
-
Realizzare un menu riutilizzabile utilizzando DataTemplate e DataBinding
-
Un tocco di stile alle applicazioni Silverlight: style e template
-
Multithreading in Silverlight 2.0

















Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.