2010-03-10 62 views

回答

6

你有2种方式去:

(1)创建任何的UIElement通入PushPinLayer.AddChild。该方法的AddChild将接受和任何的UIElement,如在这种情况下的图像:

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)创建原生对象图钉通入PushpinLayer.AddChild,但首先设置它的模板属性。请注意,图钉的是ContentControls,并且具有可以在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> 
+0

user70192,这个回答你的问题?如果是这样,你能将它标记为已回答吗? – 2010-04-15 05:15:22

1

我将通过创建一个图层,然后加入我的图钉到该层做到这一点。

// 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); 
1
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 

给我任何错误......