2010-01-29 8 views

Odpowiedz

21

nieznane,

Oto post krok po kroku dla budowania aplikacji Silverlight, która wyświetla mapy Bing w USA, i dodaje pinezką na każdym kliknięciu lokalizację. I dla zabawy dodałem funkcję "hover", gdy przeglądasz pinezki.

Krok 1: Tworzenie przykładowej aplikacji Silverlight z Visual Studio (File/New Project/Silverlight Application)

Krok 2: Dodaj dwie referencje Bing DLL do Silverlight aplikacji projektu

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

Krok 3: Edycja MainPage.xaml i dodać followin g nazw U góry

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

Etap 4: Edycja MainPage.xaml i umieścić następujące kodu wewnątrz siatki usercontrol to:

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

Etap 5: Edycja tytułowa. cs, i dodaj następujący przy użyciu klauzuli:

using Microsoft.Maps.MapControl; 

Krok 6: Edycja MainPage.cs i zastąpić klasę tytułowa z następującego kodu:

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; 
    } 
} 

Krok 7: Build and Run!

Pozdrawiam, Jim McCurdy

Face To Face Software i YinYangMoney

+0

nie widać pinezki pracy - w jaki sposób podłączyć te wydarzenia? – Tim

+0

Zdarzenia są podłączane na początku kroku 6. –

Powiązane problemy