Ich beginne mit dem Silverlight Bing Maps Steuerelement. Wie füge ich programmgesteuert mit C# einen Pushpin zu einer Karte hinzu?Silverlight - Hinzufügen von PIN zu Bing Maps über C#
Vielen Dank!
Ich beginne mit dem Silverlight Bing Maps Steuerelement. Wie füge ich programmgesteuert mit C# einen Pushpin zu einer Karte hinzu?Silverlight - Hinzufügen von PIN zu Bing Maps über C#
Vielen Dank!
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
Ich sehe nicht die Stecknadeln arbeiten - wie Sie die Ereignisse anschließen kann? – Tim
Die Ereignisse werden zu Beginn von Schritt 6 verbunden. –