Il 12 Gennaio 2012 è stato rilasciata la prima versione del Controllo Bing Maps per WPF fino ad oggi abbiamo utilizzato la Beta ma adesso è finalmente disponibile la versione ufficiale scaricabile da qui.
HTH
Francesco Valentino
Durante il mio studio di Silverlight e Bing Maps ho avuto la necessità di creare un’animazione utilizzando la storyboard ma il problema è che tra le DependencyProperty del controllo Map, da associare al target della storyboard, non c’era una DependencyProperty per poter effettuare l’animazione sulla centratura della cartina. Perciò ho cominciato a googlare e a bingare per cercare qualche informazione o qualche risorsa fino a che non ho trovato la soluzione
Poi ho pensato di scrivere questo post per non dimenticare e nel caso potesse servire a qualcuno.
Prima creo una nuova DependencyProperty
Imports Microsoft.Maps
Imports Microsoft.Maps.MapControl
Imports Microsoft.Maps.MapControl.Core
Imports StoryboardTest.GeocodeReference
Public Class NewAnimationProperty
Public Shared ReadOnly MapCenterProperty As DependencyProperty = DependencyProperty.RegisterAttached("MapCenter", GetType(Point), GetType(NewAnimationProperty), New PropertyMetadata(New PropertyChangedCallback(AddressOf OnMapCenterChanged)))
Public Shared Sub SetMapCenter(o As DependencyObject, value As Point)
o.SetValue(MapCenterProperty, value)
End Sub
Public Shared Function GetMapCenter(o As DependencyObject) As Point
Return DirectCast(o.GetValue(MapCenterProperty), Point)
End Function
Private Shared Sub OnMapCenterChanged(d As DependencyObject, e As DependencyPropertyChangedEventArgs)
Dim MapLocation As MapControl.Location = DirectCast(DirectCast(d, Map).GetValue(Map.CenterProperty), MapControl.Location)
Dim PointLoaction As New Point(MapLocation.Latitude, MapLocation.Longitude)
PointLoaction = DirectCast(e.NewValue, Point)
Dim LocationZoom As Double = CDbl(DirectCast(d, Map).ZoomLevel)
' DirectCast(d, Map).Center = New MapControl.Location(PointLoaction.X, PointLoaction.Y)
DirectCast(d, Map).SetView(New MapControl.Location(PointLoaction.X, PointLoaction.Y), LocationZoom)
End Sub
End Class
Come si può notare per poter effettuare l’animazione senza troppi preamboli, sfruttando la classe PointAnimation, non ho fatto altro che effettuare una conversione da Point a Location e viceversa.
Per sfruttare la DependecyProperty nell’animazione il codice è il seguente:
Dim sb_Center As New Storyboard
Dim pa_Center As New PointAnimation
pa_Center.Duration = New Duration(TimeSpan.FromSeconds(5))
pa_Center.From = New Point(0, 0)
pa_Center.To = New Point(41.902785999999999, 12.496225000000001)
Storyboard.SetTarget(pa_Center, Map1)
Storyboard.SetTargetProperty(pa_Center, New PropertyPath(NewAnimationProperty.MapCenterProperty))
sb_Center.Children.Add(pa_Center)
sb_Center.Begin()
Dim x As New Pushpin
x.Location = New MapControl.Location(41.902785999999999, 12.496226)
Map1.Children.Add(x)
Dim sb_Zoom As New Storyboard
Dim pa_Zoom As New DoubleAnimation
pa_Zoom.Duration = New Duration(TimeSpan.FromSeconds(5))
pa_Zoom.From = 5
pa_Zoom.To = 13
Storyboard.SetTarget(pa_Zoom, Map1)
Storyboard.SetTargetProperty(pa_Zoom, New PropertyPath(Map.ZoomLevelProperty))
sb_Zoom.Children.Add(pa_Zoom)
sb_Zoom.Begin()
Per rendere l’effetto più accattivante ho inserito anche un’animazione per lo zoom.
Francesco Valentino
Gogglando in rete alla ricerca di progetti WPF e Silverlight interessanti dai quali poter imparare qualcosa ho trovato questo blog dove sono raggruppati dei link a dei progetti WPF e Silverlight molto interessanti, pubblicati su codeplex.
Ho voulto postare il link per due motivi
1 Così so dove andarlo a trovare
2 Spero possa essere utile a qualcuno
Francesco Valentino
Se volete un gratuito servizio di backup on-line dei vostri dati Memopal è quello che fa al caso vostro.
1) E' GRATUITO
2) vi fa il backup automatico dei dati aggiornandoli di volta in volta
3) e vi permette di averli sempre a disposizione attraverso l'interfaccia web.
Collegandovi da questo link avrete a vostra disposizione 500 Mb in più rispetto ai 3,0 GB che vi vengono offerti di default.
Grazie a questo servizio primo ho la sicurezza del backup aggiornato dei miei dati in più ho ridotto al minimo indispensabile il portarmi dietro gli Hard Disk che spesso mi hanno lasciato a piedi.
Francesco Valentino
Stavo sviluppando un programma per ottenere le coordinate geografiche (utilizzando un servizio di bing maps) di alcuni miei indirizzi e ho avuto un problema sulla sincronizzazione.
Vi illustro il problema:
Ho creato una mia classe Indirizzo, con tutte le property necessarie.
Ho creato una List di elementi di tipo indirizzo.
Per ottenere le coordinate geografiche avevo semplicemente pensato di fare un ciclo nel seguente modo
Dove Source è la mia lista di elementi indirizzo. Per ottenere il risultato, restituitomi dal servizio dopo aver lanciato il metodo GeocodeAsync, ho gestito l’evento GeodoceCompleted.
Ma nel complesso c’era un problema prima ancora che ottenessi il risultato della prima richiesta il ciclo for aveva già finito e aveva inviato altre richieste creando un disastro. Per risolvere ho utilizzato la classe AutoResetEvent
ed l’ho utilizzato così nel cilco
mentre nella gestione dell’evento GeocodeComplete
Ora saprò dove andare a trovare la soluzione nel caso (anche se difficile) la dimenticassi o nel caso servisse a qualcuno.
Francesco Valentino
Ho ritrovato molto utile questo link per lo sviluppo di applicazioni silverlight che non necessariamente richiedono di essere eseguite da un borwser.
A me è servito in quanto stavo sviluppando un programma, da eseguire in locale, che doveva avere accesso in lettura e scrittura a dei file system (che come sappiamo per motivi di sicurezza Silverlight non permette), in questo modo ho risolto il mio problema.
Sperando vi possa servire.
Francesco Valentino
Per ottenere lo screenshot di un elemento contenuto all’interno di una window di Wpf o Silverlight ecco il codice
Francesco Valentino
Riporto testualmente:
MSDN Flash è la newsletter dedicata agli sviluppatori e agli architetti applicativi che utilizzano prodotti e tecnologie Microsoft.
Registrandoti a MSDN Flash, puoi ricevere gratuitamente ogni due settimane nella tua mailbox informazioni aggiornate sulle risorse tecniche online, le opportunità di formazione, il rilascio di versioni Beta, SDK e Service Pack, gli strumenti di sviluppo, gli articoli tecnici disponibili in rete.
Inoltre troverai il calendario aggiornato degli eventi, le conferenze e i webcast organizzati da Microsoft.
Nella newsletter MSDN Flash trovi:
- Importanti informazioni sui prodotti di sviluppo
- Gli eventi nazionali e internazionali
- Articoli di approfondimento sulle tecnologie
- Download
- Video tecnici
- Altre informazioni correlate al mondo Microsoft per lo sviluppo applicativo
Un altro strumento a nostra diposizione per restare aggiornati
Francesco
Anche se non attinente con le informazioni trattate in questo blog non posso fare a meno di comunicarvi che il giorno 06/07/2008 ore 19.15 è nato il mio primo figlio, Samuel Antonio (dal significato Antonio dono a Dio) dal peso di 3,525 kg e lungo ben 51 cm. Anche se attualmente mi sento ancora frastornato dall'emozione posso dirvi che è qualcosa di meraviglioso e di indescrivibile. Diciamo che è il mio primo erede al desktop...
Francesco
E' già da un pò di tempo che sto scaricando dei Webcast di Microsoft riguardo alla programmazione èd ho trovato molto utile la sezione Percorsi formativi per sviluppatori la quale contiene molti webcast dedicati sia a coloro che hanno già una certa conoscenza di programmazione sia a chi comincia da zero. Pertanto sia per chi vuole come me mettere un pò d'ordine fra le idee sia per chi è alle prime armi consiglio di scaricarsi i WebCast che più gli interessano e di seguirli attentamente. Sono gratuiti e si posso scaricare seguendo i relativi link da qui.
Francesco
Technorati Tag:
Formazione