如何在Bing Maps Silverlight控件上自定义图钉的样式?我已经查看了这里显示的文档(http://www.microsoft.com/maps/isdk/silverlightbeta/#MapControlInteractiveSdk.Tutorials.TutorialCustomPushpin)。但是,我正在以编程方式添加可变数量的Pushpins。理想情况下,我希望能够设置每个Pushpin的样式,但我不知道如何做到这一点。
MapLayer m_PushpinLayer = new MapLayer();
Your_Map.Children.Add(m_PushpinLayer);
Image image = new Image();
image.Source = ResourceFile.GetBitmap("Images/Me.png", From.This);
image.Width = 40;
image.Height = 40;
m_PushpinLayer.AddChild(image,
new Microsoft.Maps.MapControl.Location(42.658, -71.137),
PositionOrigin.Center);
(2) 创建本地PushPin对象以传递到PushpinLayer.AddChild,但首先设置其模板属性。请注意,PushPin是ContentControl,具有可以从XAML中定义的资源中设置的模板属性:
MapLayer m_PushpinLayer = new MapLayer();
Your_Map.Children.Add(m_PushpinLayer);
Pushpin pushpin = new Pushpin();
pushpin.Template = Application.Current.Resources["PushPinTemplate"]
as (ControlTemplate);
m_PushpinLayer.AddChild(pushpin,
new Microsoft.Maps.MapControl.Location(42.658, -71.137),
PositionOrigin.Center);
<ResourceDictionary
xmlns="http://schemas.microsoft.com/client/2007"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ControlTemplate x:Key="PushPinTemplate">
<Grid>
<Ellipse Fill="Green" Width="15" Height="15" />
</Grid>
</ControlTemplate>
</ResourceDictionary>
// during initial load
MapLayer lay = new MapLayer();
MapControl.Children.Add(lay);
// for each pushpin you want to add
Image image = new Image();
// this assumes you have an "Images" folder on the root of your host web application
image.Source = new BitmapImage(new Uri(App.Current.Host.Source, "../Images/PushPin.png"));
var lat = 40.4d;
var long = -81.8d;
Location location = new Location(lat, long, 0d);
//Define the image display properties
image.Opacity = 1.0;
image.Stretch = Stretch.None;
// Center the image around the location specified
PositionOrigin position = PositionOrigin.Center;
//Add the image to the defined map layer
lay.AddChild(image, location, position);
Private Sub MainPage_Loaded(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles Me.Loaded
Dim pushpin As Microsoft.Maps.MapControl.Pushpin = New Microsoft.Maps.MapControl.Pushpin
pushpin.Template = Application.Current.Resources("PushPinTemplate")
End Sub
不要报错...