Hidden blog

Nella sapienza non c'è fine

 

posts - 20, comments - 11, trackbacks - 0

lunedì 16 gennaio 2012

Bing Maps for WPF

 

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

posted @ lunedì 16 gennaio 2012 12.40 | Feedback (3) |

giovedì 28 luglio 2011

Silvelight e Bing Maps Control: Animazione su MapCenterProperty

 

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

 

Get Microsoft Silverlight

posted @ giovedì 28 luglio 2011 14.10 | Feedback (0) |

mercoledì 1 dicembre 2010

Codeplex: 20 interessanti progetti per chi utilizza WPF e Silverlight

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

posted @ mercoledì 1 dicembre 2010 14.54 | Feedback (0) |

mercoledì 17 novembre 2010

Backup on-line gratuito con Memopal

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.

 Memopal 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

 

Technorati Tag: ,

 

posted @ mercoledì 17 novembre 2010 8.07 | Feedback (2) |

mercoledì 27 ottobre 2010

Invio richieste multiple a servizio Bing Maps con Silverlight

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

Dim x As New GeocodeReference.GeocodeRequest 
x.Credentials = New GeocodeReference.Credentials 
x.Credentials.ApplicationId = "MioID" 
Dim y As New GeocodeReference.GeocodeServiceClient("BasicHttpBinding_IGeocodeService") 
For i As Integer = 0 To Source.Count - 1 Step 1 
s = i 
x.Query = Source(i).Via + " " + Source(i).Numero + ", " + Source(i).Citta + ", " + Source(i).Provincia 
AddHandler y.GeocodeCompleted, AddressOf GeocodeComplete 
y.GeocodeAsync(x) 
Next 

 

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.

Private Sub GeocodeComplete(ByVal sender As Object, ByVal e As GeocodeReference.GeocodeCompletedEventArgs)
Dim z As New GeocodeReference.GeocodeResponse
z = e.Result
If z.Results.LongCount > 0 Then
Source(s).Latitudine = z.Results(0).Locations(0).Latitude
Source(s).Longitudine = z.Results(0).Locations(0).Longitude
End If
End Sub
 

 

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

Public auto As New AutoResetEvent(False)

 

ed l’ho utilizzato così nel cilco

Dim x As New GeocodeReference.GeocodeRequest
x.Credentials = New GeocodeReference.Credentials
x.Credentials.ApplicationId = "MioId"
Dim y As New GeocodeReference.GeocodeServiceClient("BasicHttpBinding_IGeocodeService")
For i As Integer = 0 To Source.Count - 1 Step 1
s = i
x.Query = Source(i).Via + " " + Source(i).Numero + ", " + Source(i).Citta + ", " + Source(i).Provincia
AddHandler y.GeocodeCompleted, AddressOf GeocodeComplete
y.GeocodeAsync(x)
auto.WaitOne()  'Con questo fermo il thread in attesa di un segnale
Next
 

 

mentre nella gestione dell’evento GeocodeComplete

Private Sub GeocodeComplete(ByVal sender As Object, ByVal e As GeocodeReference.GeocodeCompletedEventArgs)
Dim z As New GeocodeReference.GeocodeResponse
z = e.Result
If z.Results.LongCount > 0 Then
Source(s).Latitudine = z.Results(0).Locations(0).Latitude
Source(s).Longitudine = z.Results(0).Locations(0).Longitude
End If
auto.Set()  'Invia il segnale per far ripartire il thread in attesa
End Sub
 

 

Ora saprò dove andare a trovare la soluzione nel caso (anche se difficile) la dimenticassi o nel caso servisse a qualcuno.

Francesco Valentino

posted @ mercoledì 27 ottobre 2010 9.15 | Feedback (0) |

Silverlight 4 - Applicazione Out of Browser

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

 

Technorati Tag: ,

posted @ mercoledì 27 ottobre 2010 6.34 | Feedback (0) |

martedì 14 settembre 2010

Wpf – Screenshot di un elemento

 

Per ottenere lo screenshot di un elemento contenuto all’interno di una window di Wpf o Silverlight ecco il codice

 
Dim element As UIElement = grid1
Dim transform As Transform = grid1.RenderTransform
Dim wbmp As New WriteableBitmap(element, transform)
Image1.Source = wbmp

 

Francesco Valentino

posted @ martedì 14 settembre 2010 9.12 | Feedback (0) |

mercoledì 27 gennaio 2010

Aggiorniamoci con Newsletter MSDN Flash

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

posted @ mercoledì 27 gennaio 2010 8.01 | Feedback (0) |

martedì 15 luglio 2008

Il mio primo erede al Desktop

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

posted @ martedì 15 luglio 2008 15.46 | Feedback (3) |

mercoledì 4 giugno 2008

Percorsi formativi per sviluppatori

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:

posted @ mercoledì 4 giugno 2008 8.55 | Feedback (0) |

Powered by: