2010-01-29 5 views

Antwort

21

Unbekannt,

Hier ist eine Schritt-für-Schritt-Stelle für eine Silverlight-Anwendung erstellen, die eine Bing Karte der USA zeigt, und fügt eine Reißzwecke an jedem Standort angeklickt. Und nur zum Spaß habe ich einige "Hover" -Funktionen hinzugefügt, wenn Sie über die Pins stöbern.

Schritt 1: Erstellen Sie eine Beispielsilverlight-Anwendung mit Visual Studio (Datei/Neues Projekt/Silverlight-Anwendung)

Schritt 2: Fügen Sie die beiden Bing DLL Verweise auf die Silverlight-Anwendung Projekt

Folder: C:\Program Files\Bing Maps Silverlight Control\V1\Libraries\ 
File 1: Microsoft.Maps.MapControl.dll 
File 2: Microsoft.Maps.MapControl.Common.dll 

Schritt 3: die MainPage.xaml bearbeiten, und fügen Sie den followin g Namensraum an der Spitze:

xmlns:Maps="clr-namespace:Microsoft.Maps.MapControl;assembly=Microsoft.Maps.MapControl" 

Schritt 4: die MainPage.xaml bearbeiten, und fügen Sie den folgenden Code in der Usercontrol Grid:

<Maps:Map x:Name="x_Map" Center="39.36830,-95.27340" ZoomLevel="4" /> 

Schritt 5: die Hauptseite Bearbeiten. cs, und fügen Sie die folgende Anweisung using:

using Microsoft.Maps.MapControl; 

Schritt 6: Bearbeiten Sie die MainPage.cs, und ersetzen Sie die Mainpage-Klasse mit dem folgenden Code:

public partial class MainPage : UserControl 
{ 
    private MapLayer m_PushpinLayer; 

    public MainPage() 
    { 
     InitializeComponent(); 
     base.Loaded += OnLoaded; 
    } 

    private void OnLoaded(object sender, RoutedEventArgs e) 
    { 
     base.Loaded -= OnLoaded; 

    m_PushpinLayer = new MapLayer(); 
    x_Map.Children.Add(m_PushpinLayer); 
     x_Map.MouseClick += OnMouseClick; 
    } 

    private void AddPushpin(double latitude, double longitude) 
    { 
     Pushpin pushpin = new Pushpin(); 
     pushpin.MouseEnter += OnMouseEnter; 
     pushpin.MouseLeave += OnMouseLeave; 
     m_PushpinLayer.AddChild(pushpin, new Location(latitude, longitude), PositionOrigin.BottomCenter); 
    } 

    private void OnMouseClick(object sender, MapMouseEventArgs e) 
    { 
     Point clickLocation = e.ViewportPoint; 
     Location location = x_Map.ViewportPointToLocation(clickLocation); 
     AddPushpin(location.Latitude, location.Longitude); 
    } 

    private void OnMouseLeave(object sender, MouseEventArgs e) 
    { 
     Pushpin pushpin = sender as Pushpin; 

     // remove the pushpin transform when mouse leaves 
     pushpin.RenderTransform = null; 
    } 

    private void OnMouseEnter(object sender, MouseEventArgs e) 
    { 
     Pushpin pushpin = sender as Pushpin; 

     // scaling will shrink (less than 1) or enlarge (greater than 1) source element 
     ScaleTransform st = new ScaleTransform(); 
     st.ScaleX = 1.4; 
     st.ScaleY = 1.4; 

     // set center of scaling to center of pushpin 
     st.CenterX = (pushpin as FrameworkElement).Height/2; 
     st.CenterY = (pushpin as FrameworkElement).Height/2; 

     pushpin.RenderTransform = st; 
    } 
} 

Schritt 7: Build and Run!

Cheers, Jim McCurdy

Face To Face Software und YinYangMoney

+0

Ich sehe nicht die Stecknadeln arbeiten - wie Sie die Ereignisse anschließen kann? – Tim

+0

Die Ereignisse werden zu Beginn von Schritt 6 verbunden. –

Verwandte Themen